1 / 34

Programování v Pascalu Přednáška 2

Programování v Pascalu Přednáška 2. RNDr. Hana Havelková. O čem to bude. lexikální jednotky oddělovače, komentáře standardní vstup standardní výstup deklarace proměnných rychlý přehled typů jednoduché příkazy. Program v Pascalu.

megan-kerr
Download Presentation

Programování v Pascalu Přednáška 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programování v Pascalu Přednáška 2 RNDr. Hana Havelková

  2. O čem to bude • lexikální jednotky • oddělovače, komentáře • standardní vstup • standardní výstup • deklarace proměnných • rychlý přehled typů • jednoduché příkazy

  3. Program v Pascalu posloupnost lexikálních jednotek (tokenů) oddělenými oddělovači dodržující jistá pravidla • syntaxe (syntaktické chyby) • sémantika (sémantické chyby) • logika (logické chyby)

  4. Lexikální jednotky (tokeny) • speciální znaky • identifikátory • návěští • číselné a řetězcové konstanty • rezervovaná (klíčová) slova Poznámka: • sousedící identifikátory, klíčová slova nebo konstanty musí být od sebe oddělena aspoň jednou mezerou nebo jiným oddělovačem • přebytečné mezery a oddělovače řádků jsou překladačem ignorovány • nerozlišují velká a malá písmena (case insensitive)

  5. Oddělovače • prázdné znaky (blanks, white spaces) • mezera, tabulátor, odřádkování, odstránkování • znaky s kódem 0 – 31 • komentáře

  6. Komentáře • uzavírají se mezi složené závorky { } • mohou být víceřádkové • používají se • jako vysvětlení toho, co příslušný kód dělá • jako direktiva (specielní příkaz) překladače • při testování k vyřazení části kódu z provozu – co je v komentářových závorkách se nekontroluje, nepřekládá, neprovádí

  7. Speciální znaky + - * / . , : ; := . . ^ = <> < <= > >= ( ) [ ] @ { } $ # (* *) (. .)

  8. Identifikátory • libovolná délka, rozlišuje se prvních 63 znaků (závisí na překladači) • mohou obsahovat pouze písmena, číslice a podtržítka • nesmí začínat číslicí • nerozlišují se velká a malá písmena • označují konstanty, typy, proměnné, funkce, procedury, jednotky • smysluplná jména • velbloudí notace

  9. Písmeno Podtržítko Písmeno Číslice Podtržítko Identifikátor – syntaktický diagram

  10. 0 9 _ A Z a z Číslice A F a f Podtržítko, číslice, písmeno Podtržítko Číslice Písmeno hexadecimální číslice

  11. Identifikátor - příklady • suma • cislo1, cislo2, cislo3 • JmenoZaka jmeno_zaka • CelkovaMzda celkova_mzda • VypocetPrumerneMzdy vypocet_prumerne_mzdy • x_na_treti • _soucet_ • MAXIMALNI_POCET

  12. Klíčová slova • mají speciální (vyhrazené) použití • identifikátor nesmí být pojmenovaný stejně jako klíčové slovo

  13. Klíčová slova - přehled and file not then array for object to asm function of type begin goto or unit case if packed until const implementation procedure uses constructor in program var destructor inherited record while div inline repeat with do interface set xor downto label shl else mod shr end nil string

  14. Direktivy absoluteassemblerexport externalfarforward indexinterruptname nearprivatepublic residentvirtual Poznámka: nejsou vyhrazené

  15. Návěští • označují řádek (příkaz) programu, který může být cílem skoku (příkaz goto) • je ukončeno dvojtečkou : • jedná se vlastně o identifikátor label Zacatek, Chyba; var a, b, c, x1, x2 : real; begin Zacatek: WriteLn('Kvadratická rovnice'); Write('Zadej a: ');ReadLn(a); if a = 0 then goto Chyba; … … Chyba: WriteLn('Nejde o kvadratickou rovnici!!!'); …

  16. Konstanty • číselné • celočíselné • desítkové • šestnáctkové • reálné • řetězcové

  17. + Číslice - + $ Hexadec. číslice - Celočíselné konstanty • desítkové 3618, -1025, 1234567890 • šestnáctkové $321, -$abc, $2C4A

  18. + Číslice . Číslice - E + Číslice Exp e - Reálné konstanty 1231.165 1.63e-5 -7.8025e3 67.575E+6 Exp

  19. Řetězcová konstanta • posloupnost znaků uzavřená mezi apostrofy • řetězec nemůže být víceřádkový • řetězec může být i prázdný tj. mezi apostrofy není nic '' • rozlišují se velká a malá písmena • řetězec může obsahovat libovolné znaky s ASCII kódem 0 -255 tj. i • znaky s českou diakritikou • netisknutelné znaky • grafické znaky

  20. ' ' Znak # Číslo 0-255 Řetězce 'Přednáška z Programování 1' 'Ahoj'#10'jak se máte? '#10'My docela dobře'

  21. Standardní vstup • obvykle z klávesnice • procedura Read • obecný tvar: Read (p1, p2, …, pn ) • načte ze vstupu n hodnot a uloží je do proměnných p1, p2, …, pn • procedura ReadLn • obecný tvar: ReadLn (p1, p2, …, pn) • načte ze vstupu n hodnot a uloží je do proměnných p1, p2, …, pn, přečte se i znak ukončující řádek Příklad1 Příklad2 Příklad3 Příklad4

  22. Vstup čísel a řetězců v jednom čteme-li v jednom vstupu čísla i řetězce a řetězec není jako poslední v seznamu, může se stát, že • číselné hodnoty následující po řetězci se již neuloží do svých proměnných, ale budou v podstatě spolknuty řetězcem a program dále čeká na vložení těchto hodnot • nastane chyba vstupu, neboť do čísla se ukládá část řetězce Příklad2 Příklad3 Příklad1

  23. Vstup několika řetězců najednou čteme-li v jednom vstupu více řetězců, může se stát, že • první řetězec spolkne veškerý vstup až do konce řádku, takže ostatní řetězce zůstanou prázdné • dojde k chybnému rozdělení vloženého textu do jednotlivých řetězců – řetězce na začátku seznamu parametrů procedury ReadLn jsou správně naplněny a ostatní špatně nebo vůbec Příklad2 Příklad3 Příklad1

  24. Standardní výstup obvykle na obrazovku (konzoli) • procedura Write • obecný tvar: Write (p1, p2, …, pn ) • zobrazí na výstupu hodnoty výrazů p1, p2, …, pn • procedura WriteLn • obecný tvar: WriteLn (p1, p2, …, pn ) • zobrazí na výstupu hodnoty výrazů p1, p2, …, pn a poté odřádkuje Poznámka: WriteLn bez parametrů pouze odřádkuje – lze použít i opakovaně

  25. Standardní výstup - příklad var a, b : integer; x : real; nadpis : string; begin a := 9165; b := 718; nadpis := 'Výstup na obrazovku'; WriteLn(nadpis); WriteLn; WriteLn('a = ', a, 'b = ', b); x := a / b; WriteLn('Reálný podíl = ', x :10:4); WriteLn('Celočíselný podíl = ', a div b); … end.

  26. var Seznam identifikátorů : typ ; klauzule absolute : kladné celé č. kladné celé č. absolute identifikátor proměnné Deklarace proměnných klauzule absolute

  27. Datové typy jednoduché strukturované pointer ordinální reálné • char • boolean • celočíselné • interval • výčet • pole • záznam • množina • soubor • řetězec

  28. Deklarace proměnných – příklady var jmeno, prijmeni : string[20]; nadpis : string; pocet : integer; cislo, soucet, prumer : real; odpoved : char; platnost : boolean; odkaz_na_jmeno : string absolute jmeno; Crt_Mode : byte absolute $0040 : $0049;

  29. Jednoduché příkazy • přiřazovací příkaz • volání procedury • příkaz goto

  30. Identifikátor proměnné := Výraz Identifikátor funkce Přiřazovací příkaz • hodnota výrazu na pravé straně se dosadí do proměnné na straně levé event. zajistí vrácení funkční hodnoty • výraz na levé straně musí být kompatibilní vůči přiřazení s typem proměnné vlevo nebo s typem funkční hodnoty • typy jsou shodné • typ výrazu je podtypem typu proměnné (fční hodnoty) • do proměnné typu real lze dosadit celočíselný výraz • do proměnné typu integer lze dosadit výraz typu byte … • do proměnné typu string lze dosadit výraz typu char

  31. Přiřazovací příkazy - příklady var hotovo : boolean; realny_podil : real; cislo : byte; suma, x, y, a, b : integer; celociselny_podil : integer; realny_podil := x / y; celociselny_podil : = x div y ; suma := suma + cislo; hotovo := (a=0) or (b=0);

  32. Identifikátor procedury Identifikátor metody Seznam skutečných parametrů Kvalifikovaný id. metody Identifikátor proc. prom. Volání procedury ClrScr; WriteLn('Dobrý den'); NakresliKruh(10,10,20); ReadLn;

  33. Návěští goto Příkaz goto • příkaz skoku – přenese provádění programu na místo (příkaz) označený návěštím • používat jen výjimečně

  34. Příklad goto goto Konec;

More Related