Eljárások megadása
Az alprogram olyan programozási eszköz, melynek segítségével nevet rendelhetünk egy kódrészlethez. Ezt a kódrészletet azután a program bármely pontján végrehajthatjuk úgy, hogy a neve használatával meghívjuk. Az alprogramoknak két fajtája létezik, az eljárások és a függvények.
Az eljárások megadásának szintaxisa:
Procedure eljárásnév(formális paraméterlista);
Alprogramblokk;
Az eljárás neve egy azonosító. Paramétereket nem kötelező rendelnünk az eljáráshoz, ha nincsenek paraméterek, a zárójeleket sem kell megadnunk.
A formális paraméterlistában fel kell sorolnunk az eljárás formális paramétereinek nevét és típusát. Ha több azonos típusú formális paraméter szerepel a paraméterlistában, akkor azokat vesszővel elválasztva elég csak egyszer kiírnunk a típus nevét. Ha különböző típusú paramétereket is megadunk, akkor azokat pontosvesszővel választjuk el.
Példa:
Procedure Tarol(nev : String; szul_ev, szul_ho, szul_nap : Word);
Az eljárás nevét és a formális paraméterlistát együtt az eljárásfejnek vagy specifikációjának szoktuk nevezni. Az Alprogramblokk lehet Blokk, külső (esetleg Assambler) direktíva vagy a Forward kulcsszó.
A Blokk, ugyan úgy, mint a főprogramban, deklarációkból és utasításrészből áll. Az utasításrészben leírt végrehajtható utasítások adják az eljárás törzsét.
Függvények megadása
Függvényt az alábbi módon kell megadnunk Free Pascalban:
Function függvénynév(formális paraméterlista):visszatérési érték típusa;
Alprogramblokk;
Mint látható, a szintaxis hasonló az eljárásokéhoz, a különbség annyi, hogy a függvények szolgáltatnak visszatérési értéket is. A specifikáció végére ennek a visszaadott értéknek a típusát kell írnunk. A függvénynév olyan azonosítóként működik a függvény törzsén belül, melyre egy vagy több értékadás adható ki. Az utolsó értékadás eredménye lesz a függvény vissztérési értéke. A következő példában a Max függvény két egész szám közül a nagyobbat adja vissza.
példa:
Function Max(A,B:Word):Word;
Begin
If A>=B
Then Max:=A
Else Max:=B
End;
A forráskódnak az a része, amely fordítás után, a futtatás kezdetén megkapja a vezérlést, azaz ez a program belépési pontja.
Paraméterezhető programegység, az újrafelhasználhatóság egyik eszköze. Formálisan olyan utasítássorozat, melyet egy azonosítóval látunk el, és a végrehajtásához ezt az azonosítót, mint utasítást használjuk. Két fajtája létezik: eljárás és függvény. Az alprogram fejében található annak azonosítója, formális paraméterlistája, ezt követően pedig az alprogram törzse.
Az a művelet, amikor a vezérlést egy alprogramra adjuk át. Free Pascalban ezt az Eljáráshívó utasítás végzi el. Ebben az eljárást az azonosítójával és az aktuális paraméterlistájával hívhatjuk meg. Az aktuális paraméterlistának meg kell felelnie a formális paraméterlistának a paraméterek számában és a megfelelő paraméterenek páronként kompatibilisnek kell lenniük.
Függvények szabályos meghívása úgy történhet, hogy egy kifejezésben, mint operandust szerepeltetjük. Például értékadó utasítás jobb oldalán, vagy vezérlő feltételekben. A Free Pascal azonban lehetőséget biztosít arra is, hogy függvényt úgy hívjunk meg, mintha az eljárás lenne, ilyenkor a függvény visszatérési értéke elvész.
Az a művelet, amikor egy függvény típusú alprogramra adjuk a vezérlést. Ez történhet úgy, hogy a függvény azonosítóját egy kifejezésbe, mint operandust beírjuk, vagy történhet úgy is, mint az eljárások hívása: a függvény azonosítóját egyszerűen mint utasítást használjuk, ám ez utóbbi esetben a függvény visszatérési értéke elvész.
Az eljárások mellékhatásán azt a folyamatot értjük, amikor az alprogram megváltoztatja környezetét vagy paramétereinek értékét. Ez történhet úgy, hogy az alprogramban a globális változók értékeit változtatjuk meg, vagy úgy, hogy cím szerinti paraméterátadás történt az alprogram specifikációjában, és ez hatással van a hívó programegységben az azonos nevű változók értékeire.