kategória | ||||||||||
|
||||||||||
|
||
|
||||||||||||
A programok programfejre és blokknak nevezett törzsre bonthatók. A fej nevet ad a programnak és felsorolja a program paramétereit.
A program fejrészében paraméterek adhatók meg, amelyek segítségével a futtatáskor a programot a környezetéhez igazíthatjuk. A programfej adatait indításkor az operációs rendszer veszi át és lehetővé teszi azok lekérdezését a futó program és a 424e47e z őt követő más programok számára is. A programfej el is hagyható, de legalább a program nevét ajánlott megadni a későbbi azonosítás lehetősége miatt. Egy példa a programfejre:
PROGRAM RENDEZŐ FILE1;
A fenti példában a program neve RENDEZŐ, a FILE1 pedig paraméter, amit az indításkor lehet megadni. Vagyis ha az operációs rendszer megkapja a RENDEZŐ ADATOK.DTA parancsot, akkor az ADATOK.DTA fájt fogja rendezni.
A programblokk két részre osztható: a deklarációs részre, amely az összes, a blokkban használt adat és adatszerkezet tulajdonságait adhatja meg és utasítás, vagy más néven végrehajtási részre, amely a deklarációs részben megadott objektumokon elvégzendő műveleteket adja meg.
A deklarációs részben a program által használt objektumokat egyértelműen el kell nevezni és meg kell adni a típusaikat. A fordítóprogram ezek alapján foglal helyet az adatok számára az operatív tárban és ellenőrzi a velük való műveletek helyes megadását. Ezeket a programsorokat deklarációknak nevezzük. A program különböző objektumainak típusait különböző szabályok szerint kell megadni, például a var szám1 integer; olyan adatot ír le, amit a programban szám1-nek nevezünk és értéke egész szám lehet.
A deklarációs részt a végrehajtási, vagy utasításrész követi, ami a PASCAL-ban kötelezően a begin szóval kezdődik és az end. szó zárja le. A végrehajtási részben a deklarált adatokkal műveleteket végezhetünk. A PASCAL-ban a műveleteket az alábbi csoportokba oszthatjuk:
Az alábbi példa egy teljes PASCAL programot mutat:
Program minta;
Var a,b:integer;
Begin
Write("Írj be két számot:", "a=");
Readln(a);
Write("b=");
Readln(b);
If a<b then Writeln("Az a kisebb a b-nél")
Else Writeln("A b kisebb vagy egyenlő az a-nál");
End.
A fenti program nagyon egyszerű, két billentyűzetről beolvasott számról eldönti, hogy melyikük a kisebb, és ezt visszaírja a képernyőre. A programfej csak a program nevét tartalmazza: minta, a deklarációs részben két egész típusú változót adtunk meg, az a-t és a b-t,
A végrehajtási részben azonban a Write és a Readln műveletek nagyon összetettek is lehetnek, hiszen ismerniük kell az adott hardvert, amiről az adatokat bevisszük, illetve megjelenítjük. Ha ezeket részletesen ki kellene fejteni, akkor a programunk akár több száz soros is lehetne. A Readln és a Write, vagy Writeln műveleteket valaki egyszer már megírta, lefordította és elhelyezte egy olyan könyvtárban, amihez a PASCAL fordító hozzáfér és be tudja építeni a mi programunkba is. Nekünk ezekről csal annyit kell tudni, hogy hogyan kell őket beírni a programba.
Az ilyen programrészeket moduloknak nevezzük. A PASCAL-ban kétféle modult ismerünk, az eljárást, illetve a függvényt.
A modulok átláthatóbbá teszik a programjainkat, lehetővé válik, hogy egy problémán többen is dolgozzanak egyszerre. A fenti példában a Write, Writeln és a Readln modulokat a PASCAL fordító készítői írták meg, de modult mi is írhatunk. A modulokat a programok deklarációs részében kell megadni és külsőre csaknem teljesen olyanok, mint maga a program. Az egyetlen lényeges különbség a fejrészek megadásában van. Az eljárás típusú modulok fejrésze
procedure modulnév(paraméterek),
a függvény típusúaké
function függvénynév(paraméterlista): függvénytípus
alakúak.
Az eljárásokat használni kívánó programrésznek mindössze annyit kell tenni, hogy meghívni őket, ahogy azt a fenti mintapéldában is láttuk.
Példák egy eljárás típusú modul hívására: Readln(a); cserél(a,b); stb.
Példák függvény típusú eljárások hívására: x:=abs(y); c:=min(a,b).
Találat: 2093