3. 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:
- relációs jelek: < > = <= (kisebb vagy egyenlő) >= (nagyobb vagy egyenlő) <> (nem egyenlő)
- szövegösszefűzés: pl. 'záp'+'tojás' eredménye 'záptojás'
- egészek osztási maradéka: pl. 12
mod5 eredménye 2 - egészek hányadosa: pl. 25
div7 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.
notTRUE 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,<,>,=,<=,>=,<>
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