9. Típusok és konstansok deklarálása
Típusdeklaráció
Az egyes típusoknak nevet lehet adni a
deklarációs utasítással. A következõ példából látható, hogy ez egyszerûsítheti a deklarációs részt.
TYPE tomb=array[1..100] of integer;
VAR a,b:tomb;
A TYPE másik fontos szerepe az, hogy a Pascal csak akkor ismer el azonosnak két típust, ha ugyanaz a nevük. A fenti deklaráció után használhatjuk a programban az a:=b utasítást; míg ha a deklaráció
VAR a,b:array[1..100] of integer;
lenne, a Pascal nem ismerné fel az azonos típusokat, és egy ciklussal kellene az egyik tömb minden elemét a másikba rakni. Példa összetettebb deklarációra:
TYPE Ember=record
nev:string;
szul:integer;
suly:real;
end;
Tomb=array[1..100] of Ember;
VAR e:Ember;
adatok:Tomb;
i:integer;
BEGIN
i:=0;
Repeat
write(i+1,'. személy neve (*=kilépés):
'); readln(e.nev);
if e.nev<>'*' then begin
write('született: '); readln(e.szul);
write('súlya: '); readln(e.suly);
i:=i+1;
adatok[i]:=e;
end;
Until (e.nev='*') or (i=100)
END.
A program feltölti az adat nevû tömböt, a ciklusból akkor lép ki, ha az utolsó személyt is felvittük, vagy névre *-ot írtunk be. Rekordok használata nélkül a névre, súlyra és születési évre három külön tömböt kellett volna használni. Az adatok[i]:=e értékadás csak azért volt lehetséges, mert mind az e változó, mind az adatok tömb elemei ember típusúak.
Konstansdeklaráció
A programban deklarálhatunk konstansokat is a
deklarációs utasítással. Ha a fordító a továbbiakban ezzel a konstanssal találkozik, már a fordítás alatt az értéket írja a helyére. A konstansra a deklarációs részben is hivatkozhatunk. Ha tehát a fenti program deklarációs részét kiegészítjük a
CONST max=100;
utasítással, majd következetesen a 100 helyébe mindenhová (a Tomb típus deklarációjánál is) max-ot írunk, a program mûködésében semmiféle változás nem következik be.
Mi az értelme konstansok használatának? Ha rájövünk, hogy az adat tömb maximális méretére célszerûbb lenne 200-at választani, a programban meg kell keresnünk és 200-ra javítanunk az összes 100-at. Ha viszont konstanst használunk, elég csak a deklarációt átírni CONST max=200-ra. Továbbá, minden olyan helyen, ahol a max azonosítót látjuk a programban, tudjuk, hogy az az adat tömb maximális méretét jelenti, ahol pedig továbbra is 100- at látunk, annak nincs köze a tömbmérethez. Tehát a konstansdeklarációkkal áttekinthetõbbé és könnyebben átírhatóvá válik a programunk. Célszerû a programban minden hasonló állandó értéket konstansként deklarálni.