03. fejezet: Egyszerű programok kifejezésekkel

Utasítás, paraméter, kifejezés

Észrevehetted, hogy a program begin és end szavak között helyezkedik el, és a végét pont jelzi. A program utasítások (parancsok) egymás utánja, melyeket pontosvessző választ el. Írd be a következő programot (vagyis módosítsd az eredeti projektet):
program project1;
begin
  write('ablak')
  write('zsiráf')
  readln;
end.
Fordításkor a "; expected" hibajelzést kapod, ami azt jelenti, hogy valahonnan hiányzik a pontosvessző. (Kezdő pascalos leggyakoribb hibája.) Pótold ezeket, és nézd meg, mit ír ki a program!
Ezután írd át a write parancsokat writeln-re. Láthatod, hogy az utóbbi parancs annyiban különbözik az előzőtől, hogy kiírás után új sorba áll.
A write és writeln utasítások után zárójelben a kiírandó dolog áll. Azt, hogy az utasítás mire vonatkozik, paraméternek nevezzük.  A writeln utasításnak több paramétere is lehet, melyeket vesszővel választunk el, pl. writeln('záp','tojás')

Most nézzük a következő programot:
program project1;
begin
  writeln('3+4');
  writeln(3+4);
  readln;
end.
Látható, hogy az egyszeres idézőjel (aposztróf) szöveget jelöl, míg anélkül a Pascal kiszámítja a művelet eredményét. Mindent, aminek értéke van, kifejezésnek nevezünk. A program futás közben kiszámítja a kifejezések értékét. Pl.
writeln('5*4','=',5*4)

A kifejezésekben szövegeken és számokon kívül lehetnek műveleti jelek és zárójelek (gömbölyű) is.

Típusok

A kifejezések típusa megadja, hogy milyen értékeket vehet fel egy kifejezés, és milyen műveleteket lehet vele végezni. A Pascal sokféle típust használ. Ezek közül a legfontosabbak, Pascal azonosítójukkal:
  • egész szám (integer): pl. 5, 3+4
  • szöveg (string): pl. 'zsiráf'
  • karakter (char): pl. 'N'
  • törtszám (real) pl. 0.75, 3/4
A writeln(3/4) szokatlan módon írja ki a 0,75-öt: 7.500000E-0001. Ez a szám tízes normálalakja (7,5·10-1), és praktikus, ha nagyon nagy vagy kis számot akarunk leírni (pl. 6·1023, Pascalul 6E+23). De nem kötelező használnunk: ekkor kiírásnál megadjuk a szám teljes szélességét, és hogy hány tizedesre akarjuk kerekíteni, pl. writeln(1/3:5:3)

Mit ír ki ez az utasítás? writeln(3<7,5=6)
Az ilyen kifejezések csak igaz (TRUE) vagy hamis (FALSE) értéket vehetnek fel, a típus neve:
  • logikai (boolean): pl. TRUE, 3>7
Műveletek
A matematikai alapműveleteken kívül (+ - * /) fontosak még a következők:
  • szövegösszefűzés: pl. 'záp'+'tojás' eredménye 'záptojás'
  • egészek osztási maradéka: pl. 12 mod 5 eredménye 2
  • egészek hányadosa: pl. 25 div 7 eredménye 3
  • logikai és: pl. (3>4) and (5=5) eredménye FALSE
  • logikai vagy: pl. (3>4) or (5=5) eredménye TRUE
  • logikai tagadás: pl. not TRUE eredménye FALSE

Függvények

A függvényeknek az utasításoktól eltérően visszatérési értékük is van. Pl. a writeln(sqr(3)) utasítás 9-et ír ki, mert az sqr függvény a négyzetre emelés. Próbálj ki néhány fontos függvényt:
begin
  writeln(sqr(3));
  writeln(sqrt(25));
  writeln(round(3.65));
  writeln(trunc(3.65));
  readln;
end.  

Foglaljuk össze az eddig megismert Pascal azonosítókat:
  • a program szerkezetét adják meg: begin, end
  • utasítások: write (kiír), writeln (kiír és új sorba áll), readln (Enterre vár)
  • függvények: sqr (négyzet), sqrt (négyzetgyök), round (kerekítés), trunc (csonkítás)
  • műveletek: +, -, *, /, mod, div, and, or, not, <, >, =, <= (kisebb vagy egyenlő), >= (nagyobb vagy egyenlő), <> (nem egyenlő)

Feladatok

1. Írasd ki a következő dolgokat. Ami programmal kiszámítható, azt a program számítsa ki!
  • 22 négyzetgyökének négyzetét
  • azt, hogy: 33*77=2541
  • ezt (vesszőkkel együtt): 2+2=4, 4+4=8, 8+8=16
  • annak a téglatestnek a felszínét, amelynek oldalai 3, 4, 5
  • annak a derékszögű háromszögnek az átfogóját, amelynek befogói 5, 11
  • azt a szöveget, hogy: Writeln('Szia!'); (a kiírásban két aposztrófot tegyél egymás mellé)
  • ezt: 1/50=0.02
Comments