A Pascal típusai


Minden program adatokkal dolgozik. A fordító számára azonban nem mindegy, hogy egy adat betűkarakter(eke)t, egész számot, vagy tizedes törtet tartalmaz, ettől függ ugyanis az, hogy mekkora memóriaterületen tároljuk az adatot. A Borland cég Pascal verziói egyre szélesebb skáláját nyújtják a különböző típusoknak, az egész szám jelzésére például öt különböző lehetőség is rendelkezésre áll.

EGYSZERÚ TÍPUSOK

Az egyszerű típusokhoz tartozó változók típusazonosítóját nem kell a type kulcsszó után ismertetni. Tekintsük át röviden ezeket a típusokat:


a) Az egész típus: A kezdő programozók hajlamosak arra, hogy az egész típust automatikusan integer-nek állítsák be. Ha megnézzük azonban azt, hogy az integer típus 32 bit memóriaterületet igényel, a shortint vagy a byte típus pedig csak 8-at, akkor látjuk, hogy nem mindegy, melyiket jelöljük meg egyik, vagy másik változónk típusának. Ha például tudjuk, hogy valamely egész típusú változónk legfeljebb csak a 10-es nagyságrend körüli értéket vesz fel, akkor elegendő shortint típust megjelölni. Ha ráadásul még azt is tudjuk, hogy ez az érték negatív nem lehet, akkor a byte-ot választhatjuk. Azt azért meg kell vallani, hogy ennek elsősorban nagyobb programrendszereknél van jelentősége.
b) A valós típus: Hasonló megfontolásokat lehet tenni a valós típusok megjelölésekor is, de itt csak három típus közül választhatunk. Az általános a real típus. Egész típusú változó is belefér, főleg ha az egész típusoknál nagyobb számábrázolást kívánunk meg.
c) A karakter típus: Az ASCII karakterek mindegyike megadható karakter (char) típusnak. Ez azt jelenti, hogy nemcsak a betűkarakterek, de a számok is lehetnek char típusúak. Ilyenkor azonban a számokkal nem tudunk matematikai műveleteket végezni (az átkonvertálásra azért van lehetőség). Karakter típus csak egyetlen karakter lehet, s ezeket aposztrófok közé kell tenni (pl. 'K', vagy '2'). Az ASCII karakter kódját is megadhatjuk, ilyenkor # jelet teszünk a kód elé (pl. #248, ami a ° [fok] jelnek felel meg). Ekkor azonban nem használunk aposztrófokat.
d) A karakterlánc típus: A karakterlánc tulajdonképpen char típusú karakterek sorozata (a régebbi Pascal verziókban így is kellett definiálni). Ezt is aposztrófok közé tesszük, pl. 'Eredmeny'. A karakterlánc típust a string kulcsszóval jelezzük. A kulcsszónak lehet paramétere, ami a karakterlánc hosszát jelenti. A példa szerinti szó hossza 8 karakter, ezért ezt a szót a string[8] típusazonosító írhatja le. A paraméter maximum értéket jelent, ennyi, vagy ettől kevesebb karakterből állhat a változó, különben fordításkor hibaüzenetet kapunk. Az 'Eredmeny' karakterláncnak adhatunk például string[15] típusazonosítót is. A karakterlánc legnagyobb hossza egyébként 255 karakter lehet (ebben az esetben nem kell paramétert jelölni).
e) Logikai típus: A logikai típust a boolean kulcsszóval jelöljük. Két értéke van, true (igaz) és false (hamis). A változó tárolása 1 bájton történik: true=1, false=0.

ÖSSZETETT TÍPUSOK

Az eddigiekben ismertetett típusokkal nem kell törődnünk, ami a típusazonosítást illeti (magyarul: nem kell a type mögött felsorolni). A következőkben olyan típusokról lesz szó, amelyek összetettek. Az ilyen típusú változók több meghatározott értéket is felvehetnek. Ezeket a típusokat azonban a type kulcsszó után ismertetni kell.
a) A felsorolt típus: Az ilyen típust úgy adjuk meg, hogy valamennyi lehetséges értékét felsoroljuk. Az értékeket zárójelben, egymástól vesszővel kell felsorolnunk:

Madarak = (fecske, golya, sas, bagoly);
Lanyok = (Anna, Jolan, Eva, Adrienn);
Napok = (Hetfo,Kedd,Szerda,Csutortok,Pentek,Szombat,Vasarnap);

Az egyes értékekhez sorszámokat rendel a Pascal (0, 1, 2, 3, ... ).
b) Az intervallum típus: Hasonló az előzőhöz, de itt egy intervallumot, pontosabban annak alsó és felső határát adjuk meg. Tulajdonképpen az intervallum típus egy már létező sorszámozott típus intervalluma.
Példák:

Betuk : 'A'..'Z';
MunkaNapok : Hetfo..Pentek;

Az első példa a char típus, a második példa pedig az előző pontban ismertetett Napok sorszámozott típus intervalluma. Az intervallum megadásánál megfigyelhetjük, hogy a Pascal az intervallumok jelölésére két pontot (..) használ.
c) A rekord típus: A rekord tulajdonképpen egy adatmező, amely különböző típusokból állhat, de egy egységként kezelhető. A változókat a record és az end kulcsszavak között soroljuk fel.
Nézzünk egy példát:

Datum = record
Ev : 1900..2000;
Ho : 1..12;
Nap : 1..31;
end;
Hallgato = record
VezNev, KerNev : string[20];
SzulIdo : Datum;
TanKor : string[4];
TanAtlag : real;
end;

Lehetőség van arra is, hogy a rekord változói között egy másik rekordot alkalmazzunk. Példánkban így van beágyazva a Hallgato nevű rekord típusú változóba a Datum nevű. A programban egy ilyen rekordos változóra a következőként hivatkozhatunk: Hallgato.TanKor.
d) A tömb típus: A tömb típust a kulcsszava után array típusnak is nevezik. A típus meghatározott számú és típusú elemből áll. Az elemek számát (pontosabban intervallumát) szögletes zárójelbe írt indexekkel adjuk meg, az elemek típusát pedig az of kulcsszó után jelöljük. Az elemekre a programban az index alapján hivatkozhatunk.
Példák:

Oszlop = [1..10] of real;
Sor = array[1..20] of real;

A fenti deklarációban szereplő adatokra például az Oszlop[3] vagy a Sor[15] formában hivatkozhatunk. A két deklaráció egyesítéséből kétdimenziós tömböt (táblázatot) hozhatunk létre:

Tablazat = array[1..10,1..20] of real;

A hivatkozás módja ebben az esetben: Tablazat[3][15], vagy egyszerűbben: Tablazat[3,15].
Az array típus háromdimenziós tömb létrehozására is használható:

Tomb = array[1..10,1..20,1..4] of real;
e) A halmaz típus: A halmaz egy sorszámozott alaptípus intervallumának összességét foglalja magában.
Például:

KarakterKeszlet = set of char;

Az ismertetett típusokon kívül van még néhány olyan, ami nem képezi a tananyag részét (objektum, állomány, mutató típusok). Ezekről a Pascal referenciakönyvek adnak tájékoztatást.


Egy szintet vissza, vagy vissza a főmenübe.