150 likes | 274 Views
Materiály k přednášce Úvod do programování. Ondřej Čepek. Jednoduché typy v Pascalu. INTEGER celá čísla REAL reálná (racionální) čísla CHAR znaky BOOLEAN logické hodnoty (ano/ne) (s tímto pro začátek vystačíme). Konstanty a proměnné. INTEGER 3, -5, 276, … REAL 2.81, -3.14, …
E N D
Materiály k přednášce Úvod do programování Ondřej Čepek
Jednoduché typy v Pascalu • INTEGER celá čísla • REAL reálná (racionální) čísla • CHAR znaky • BOOLEAN logické hodnoty (ano/ne) (s tímto pro začátek vystačíme)
Konstanty a proměnné • INTEGER3, -5, 276, … • REAL 2.81, -3.14, … • CHAR ‘A’, ‘a’, ‘%’, ‘6’, … • BOOLEAN true, false Proměnné jsou reprezentovány identifikátory = řetězec písmen a číslic začínající písmenem (anglická abeceda bez diakritiky, musí být různé od všech klíčových slov)
Výrazy • INTEGER a REAL proměnné a konstanty skládáme pomocí aritmetických operátorů+,-,*,/ a závorek (,) (3 + delka) / 2, 4 * (A – B), … • CHARvystačíme s proměnnými a konstantami • BOOLEAN výrazy typů INTEGER, REAL, CHAR skládáme pomocírelačních operátorů <,>,=,<>,<=,>= A >= X+2, Y <> ‘a’, prumer/2 < 2.58, … výrazy typu BOOLEAN pomocí NOT, AND, OR (A > 2) AND (A < 5), …
Příkazy Hierarchická struktura (složených) příkazů: BEGIN příkaz; příkaz; … ; příkaz END vnitřní příkazy mohou být opět složené Vstup / Výstup :READ(seznam proměnných) WRITE (seznam výrazů) READLN, WRITELN Přiřazovací příkaz :proměnná := výraz výraz musí být správného typu !!!
Příkazy Podmíněný příkaz (neúplný a úplný): IFBool.výrazTHENpříkaz IFBool.výrazTHENpříkaz1 ELSE příkaz2 Příkaz cyklu (3 druhy): WHILEBool.výrazDOpříkaz REPEATpříkaz UNTIL Bool.výraz FORřídící prom.:=výraz1TOvýraz2DOpříkaz
Struktura programu v Pascalu USESCRT;{používané unity} CONSTdelka = 5;{deklarace konstant} vyska = 3; TYPE … {deklarace datových typů} VARi,j : INTEGER; {deklarace proměnných} PISMENO : CHAR; PROCEDURE … {deklarace podprogramů} FUNCTION … BEGIN … {hlavní program} END.
Typ Pole umožňuje sdružit více položek stejného typu TYPEident.typu=ARRAY [a..b] OFtyp položek; VARseznam ident.proměnných:ident.typu; Příklad: CONSTdim=4; TYPEvektor =ARRAY [1..dim] OFreal; VARx,y : vektor; Pokud nechceme typu dávat jméno, tak lze psát VARx,y :ARRAY [1..dim] OFreal;
Typ Pole vícerozměrné pole: TYPEmatice =ARRAY [1..dim] OFvektor; nebo TYPEmatice =ARRAY [1..dim, 1..dim] OFreal; VARM : matice; přístup k položkám: X[3] třetí položka vektoru x M[2] druhý řádek (vektor) matice M M[2][4] nebo M[2,4]položka ve 2.řádku a 4.sloupci
Typ záznam umožňuje sdružit více položek různých typů TYPEident. typu=RECORDseznam ident. : typ; seznam ident. : typ; …….. END; VARseznam ident.proměnných:ident.typu; Příklad: CONSTpocet=100; delka=20; TYPEzam =RECORD jmeno : ARRAY[1..delka]OF char; plat: integer; END;
Typ záznam VARx : zam; data :ARRAY[1..pocet]OFzam; Přístup k položkám: x.jmeno jméno zaměstnance x data[5].plat plat pátého zaměstnance Zkrácený přístup: WITHxDO BEGIN jmeno := ‘NOVÁK’; suma := plat + data[1].plat END
Typ řetězec usnadňuje práci s řetězci znaků VARseznam proměnných :STRING[výraz] konstanta (výraz z konstant) typu integer v rozmezí 1 - 255 Poznámky: • zápis STRINGje to samé jako STRING[255] • „zhruba“ platí, že STRING[n]je to samé jako ARRAY[1..n]OF char • přístup k položkám je u typů pole a řetězec stejný • v nultém bytu řetězce je uchovávána jeho délka (proto je délka omezena na 255 znaků)
Typ řetězec Výhody typu řetězec (proti poli znaků): • jednodušší čtení (pomocí read a readln) • jednodušší výstup (pomocí write a writeln) • předdefinované funkce a procedury funkce Length(řetězec) funkce Concat(řet1, řet2, … ,řetN) nebo operátor + procedura Str(číselný výraz, řetězec) procedura Val(řetězec, číslo, pozice chyby)
Podprogramy v Pascalu PROCEDUREJMÉNO(seznam předepsaných parametrů); CONST … TYPE … VAR … PROCEDURE … FUNCTION … BEGIN … END; FUNCTIONJMÉNO(sezn. předep. param.) : typ výsledku; blok jako u procedury, v příkazové části bloku je ale funkci přiřazena hodnota příkazem JMÉNO := výraz (přísl.typu)
Podprogramy v Pascalu Seznam předepsaných parametrů : ( [VAR] seznam identifikátorů : typ; … ; … ; … ) Volání podprogramů: pro procedury JMÉNO (seznam skutečných param.) → je to příkaz pro funkce JMÉNO (seznam skutečných param.) → je to výraz (příslušného typu) skutečný parametr = proměnná nebo výraz Způsoby volání parametrů:hodnotou × odkazem Lokální platnost identifikátorů