A PASCAL NYELV SZERKEZETE
A Pascal program nyelvezete erősen emlékeztet a programstruktúra mondatszerű leírására.
Az angolul tudók a parancs- és utasításnevek ismeretében - a nyilvánvaló kötöttségekkel -
szinte szabályos mondatokat fogalmazva írhatják meg programjaikat. Természetesen az angol
nyelvet nem ismerők számára sem jelent problémát a programozás Pascal nyelven.
A Pascal nyelvű programozás ismertetését többféleképpen el lehet kezdeni. Ismertethetjük a
program építőelemeit, a szimbólumokat, a foglalt szavakat, de talán célszerűbb, ha a program
általános szerkezetével kezdjük.
Egy Pascal-program a következő fő részekből áll:
|
program ProgramNév;
uses szabványos és egyéb egységek; | PROGRAMFEJ |
|
type adattípusok;
const globális konstansok; var globális változók; label globális címkék; |
DEKLARÁCIÓS RÉSZ |
|
function FüggvényNév1;
begin ... end; procedure EljárásNév1; begin ... end; procedure EljárásNév2; begin ... end; |
ELJÁRÁS- és FÜGGVÉNYBLOKK |
|
BEGIN
... END. |
FŐPROGRAM |
A programfej kötelezően a Program kulcsszóval kezdődik, amelyet a program neve
(azonosítója) követ. Jó, ha programnévként olyan nevet adunk, ami utal a program feladatára,
és célszerű a programot ezen a néven is menteni (hajlékony vagy merev-) lemezre. Mentéskor
a program automatikusan .PAS kiterjesztést kap, ezt külön nem is kell megadnunk. A fájlnév- adás
kötöttségei egyébként ugyanazok, mint a DOS-ban (8 angol karakter stb.). A
programfejben kell megnevezni a uses kulcsszó után azokat a rendszerhez tartozó egységeket
(unit-okat), amit a programírás megkövetel. Az egységekről a későbbiekben még lesz szó,
most csak annyit, hogy ezekben helyezkednek el - megfelelő csoportosításban - a Turbo
Pascal parancsai, utasításai. Ilyen unit-okat természetesen a programozó is készíthet, de ez
inkább csak a nagy méretű programok esetén indokolt.
A deklarációs részben azt adjuk meg, hogy milyen típusú változókkal fogunk dolgozni
(type), az adott típusú változóknak milyen nevet adunk (var), milyen állandókat
(konstansokat) szerepeltetünk a programban (const), valamint itt kell megadni a programban
alkalmazott címkéket is (label). Mindezek a jellemzők globális jellegűek, ami azt jelenti,
hogy érvényességi tartományuk az egész program. Ebből az is következik, hogy
ugyanezeknek megvannak a lokális megfelelőik is, amelyek a programnak csak egy
meghatározott részére érvényesek.
Az eljárás- és függvényblokk azokat az eljárásokat és függvényeket tartalmazza, amelyeket a
programtervezés során hoztunk létre. Az eljárásokban azokat a feladatrészeket helyezzük el,
amelyek logikailag, funkcionálisan egy egységet képeznek (a feladat részekre bontásáról már
volt szó korábban!). Egyszerű esetben például az egyik eljárásban az adatbevitelt
szerepeltethetjük, egy másikban az adatokkal való manipulálást, egy harmadikban pedig az
eredmények kiíratását.
Az eljárás mindig a procedure kulcsszóval kezdődik, amit a neve követ, utána opcionálisan a
paraméterek, a sort pedig pontosvesszővel zárjuk le. A végrehajtandó parancssorokat a begin
(kezdés) után soroljuk fel, az eljárás végét pedig az end (vége) szóval jelöljük, utána pedig
pontosvesszőt teszünk (a begin után soha nem teszünk pontosvesszőt!). Egyébként a
parancssorokat is mindig a pontosvesszővel kell lezárni. Hiába írunk külön sorba valamit, ha
nem teszünk közéjük pontosvesszőt, a fordító egy sornak fogja tekinteni az egészet. A
függvény felépítése nagyjából hasonló az eljáráshoz, csak function kulcsszóval kezdődik, és
mindig van paramétere.
A főprogram szintén a begin és az end kulcsszavak között helyezkedik el, de itt az end után
pontot teszünk, ezzel jelezzük, hogy vége a programnak. A főprogram a programunk
végrehajtó része. Itt hivatkozunk azokra az eljárásokra és függvényekre, amelyek az eljárás- és
függvényblokkban helyezkednek el. Például megnevezzük az adatbevitelért felelős eljárást,
majd a feldolgozó eljárást, végül pedig a kiírató eljárást.
A PASCAL NYELV ÉPÍTŐELEMEI
A Pascal nyelven megírt program építőelemei, azaz legkisebb értelmezhető egységei a következők:
A programban szabadon használhatjuk a kis- és nagybetűket, a fordító nem tesz különbséget közöttük.
| and | asm | array | begin |
| case | const | constructor | destructor |
| div | do | downto | else |
| end | exports | file | for |
| function | goto | if | implementation |
| in | inherited | inline | interface |
| label | library | mod | nil |
| not | object | of | or |
| packed | procedure | program | record |
| repeat | set | shl | shr |
| string | then | to | type |
| unit | until | uses | var |
| while | with | xor | _ |
Az elmondottak értelmében jó nevek lehetnek a következők:
Hki, Hallgatok, Folyo_Ev, Bbe1, Bbe2, ALMA
Ezek azonban rosszak:
2Bbe, Hallgatók, Folyó Év, 222, Egy*Egy, Gyere!
Ahhoz, hogy a fordító tudja, hogy pl. a Hallgatok egy változónk azonosítója, a deklarációs
részben közölni kell vele. Saját változóink nevét a típusmegadás és a változók felsorolása
helyén adhatjuk meg (a type és a var kulcsszavak után). Az azonos típusú változókat
vesszővel elválasztva lehet felsorolni, az utolsó után pedig pontosvesszőt kell tenni.