Programovac jazyk PASCAL Opakovanie tm z informatiky Samuel

  • Slides: 21
Download presentation
Programovací jazyk PASCAL Opakovanie tém z informatiky Samuel Novák 4. D GJAR 1

Programovací jazyk PASCAL Opakovanie tém z informatiky Samuel Novák 4. D GJAR 1

Základná syntax § Každý príkaz sa ukončuje bodkočiarkou (; ). § Nezáleží na veľkosti

Základná syntax § Každý príkaz sa ukončuje bodkočiarkou (; ). § Nezáleží na veľkosti písmen v názvoch príkazov, premenných, podprogramov, … § Ako názvy sa nesmú používať vyhradené slová § program, uses, begin, end, var, const, type, if, else, while, do, repeat, until, … § Názvy nemôžu obsahovať medzery, pomlčky § oddelenie slov: Prve. Druhe, prve_druhe 2

Základná syntax § Komentáre § § // do konca riadka { celý obsah, aj

Základná syntax § Komentáre § § // do konca riadka { celý obsah, aj cez viac riadkov } § Určenie typu: názov: typ; § Priradenie hodnoty: názov : = hodnota; § Úprava hodnoty (poddruh priradenia): +=, -=, *=, /= § Porovnávanie: § § § a = b, a <> b a > b, a < b a >= b, a <= b 3

Všeobecná štruktúra 4

Všeobecná štruktúra 4

Štruktúra programu program Nazov_programu; {$…} // direktívy prekladač Lazarusu uses // vloženie knižníc (jednotiek)

Štruktúra programu program Nazov_programu; {$…} // direktívy prekladač Lazarusu uses // vloženie knižníc (jednotiek) do programu nazvy_jednotiek, …; label // deklarácia návestí pre skoky na riadky nazvy_navesti, …; 5

Štruktúra programu const // deklarácia konštánt a: integer = 10; // nie je povinné

Štruktúra programu const // deklarácia konštánt a: integer = 10; // nie je povinné uviesť typ b = ‘ABC’; // ale niekedy je to praktické type // definícia typov nazov_typu = {definícia}; var // deklarácia globálnych premmenných c, d: integer; e: char; 6

Štruktúra programu // procedúry a funkcie procedure nazov({parametre}); begin … end; function nazov({parametre}): navratovy_typ;

Štruktúra programu // procedúry a funkcie procedure nazov({parametre}); begin … end; function nazov({parametre}): navratovy_typ; begin … end; 7

Štruktúra programu // hlavné telo programu begin { telo } end. // program končí

Štruktúra programu // hlavné telo programu begin { telo } end. // program končí bodkou 8

Procedúra procedure urob(a: byte {hodnota}; var b: char {premenná}); // vstupné parametre // hodnota

Procedúra procedure urob(a: byte {hodnota}; var b: char {premenná}); // vstupné parametre // hodnota konkrétna hodnota // premenná zmením ju v procedúre, // zmení sa aj tam, odkiaľ prišla var i: byte; // lokálne premenné // nemajú vplyv na zvyšok programu begin {telo procedúry} end; 9

Funkcia function zisti(a: byte; var b: char): navratovy_typ {musí byť udané, čo funkcia vráti};

Funkcia function zisti(a: byte; var b: char): navratovy_typ {musí byť udané, čo funkcia vráti}; var i: byte; begin {telo funkcie} zisti : = navratova_hodnota; end; 10

Ladenie programu 11

Ladenie programu 11

Syntaktické pravidlá § Bodkočiarky na koncoch príkazov § Chybu Lazarus označí na ďalšom riadku

Syntaktické pravidlá § Bodkočiarky na koncoch príkazov § Chybu Lazarus označí na ďalšom riadku § Bodkočiarky rozdeľujúce časti príkazu § if … then … ; else … ; § Správne párovo uzavreté bloky begin … end; § Odsadenie pre uľahčenie 12

Syntaktické pravidlá § Rozlišovať : = a = § § = slúži na porovnávanie

Syntaktické pravidlá § Rozlišovať : = a = § § = slúži na porovnávanie : = slúži na priradzovanie § Presné názvy § § nezáleží, však, na veľkosti rôzne od vyhradených slov bez medzier nezačínajú číslicou, ale môžu ju obsahovať § Udanie reťazca: “aaa” vs. ‘bbb’ § vždy po jednej úvodzovke 13

Syntaktické pravidlá § Parametre proc. a funkcií v oblých zátvorkách § § Write. Ln(‘Ahoj!’);

Syntaktické pravidlá § Parametre proc. a funkcií v oblých zátvorkách § § Write. Ln(‘Ahoj!’); Volanie bez parametrov nemusí mať zátvorky § Indexy polí v hranatých zátvorkách § § Viacrozmené jednotlivé rozmery oddelené čiarkou pole[1, 1] § Vždy dodržiavať kompatibilné typy § Reálne čísla nesmú začínať des. čiarkou § . 123 vs. 0. 123 14

Syntaktické pravidlá 15

Syntaktické pravidlá 15

Sémantické a logické chyby Správne zápisy s nesprávnym významom § Neskontrolovaný typ § čítanie

Sémantické a logické chyby Správne zápisy s nesprávnym významom § Neskontrolovaný typ § čítanie od užívateľa (napíše písmeno namiesto čísla) § Index mimo rozsahu § Pretečenie – priradenie hodnoty vyššej, ako je rozsah premennej § Delenie nulou § Nekonečný cyklus 16

Sémantické a logické chyby Správne zápisy s nesprávnym významom § Nesprávne porovnanie (> ,

Sémantické a logické chyby Správne zápisy s nesprávnym významom § Nesprávne porovnanie (> , >= | < , <=) § § § Tým pádom napr. nesprávny počet opakovaní cyklu if body > 90 then znamka : = 1; if body >= 90 then znamka : = 1; § zahŕňa aj spodnú hodnotu § Delenie DIV – hodnota môže byť o 1 nižšia ako predpokladaná 17

Sémantické a logické chyby Správne zápisy s nesprávnym významom § Chýbajúci blok § §

Sémantické a logické chyby Správne zápisy s nesprávnym významom § Chýbajúci blok § § if ano then // telo podmienky urob_nieco; Write. Ln(‘Urobil som. ’); if ano then begin urob_nieco; // telo podmienky Write. Ln(‘Urobil som. ’); end; § Priskoro ukončený blok § for i : = 1 to 3 do; Write. Ln(‘Nie je súčasť cyklu’); § Nesprávne poradie operácií 18

Ako ladiť program § Analýza chýb z Lazarusu § typy, preklepy, … § Kontrolné

Ako ladiť program § Analýza chýb z Lazarusu § typy, preklepy, … § Kontrolné výpisy § § Keď sa mi nezdá hodnota premennej/výpočtu Kľudne aj všetky premenné, hodnoty podmienok, … § ale tak, aby som sám vedel, čo je čo § Ladenie v Lazaruse § § body prerušenia, postupné vykonávanie sledovanie hodnôt 19

Ďakujem za pozornosť 20

Ďakujem za pozornosť 20

Zdroje § Oddelenie didaktiky informatiky a podporných technológií UPJŠ: 1 PROGRAMOVANIE TURBO PASCAL 6.

Zdroje § Oddelenie didaktiky informatiky a podporných technológií UPJŠ: 1 PROGRAMOVANIE TURBO PASCAL 6. 0 § Programming - a skill for life!: Common Error Checklists for Lazarus and Delphi 21