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
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
,<
,>
,=
,<=
,>=
,<>
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