| Vissza

ADATTÍPUSOK

Nos. Először is Hali, minden olvasónak! A cím már előre vetíti leírásom tartalmát, a Turbo Pascal adattípusairól lesz szó. Nos azt tudjuk, hogy a változók a programjaink olyan részei, melyek a műveletek kezdő adatait, illetve a műveletek eredményeit tartalmazzák. Hogy ezen változókat használni tudjuk előre deklarálni kell. Ezzel meghatározzuk az adat változó álltal felvehető értékek halmazát, szépen mondva. Ez mit is takar? Például egy változót egész számosnak deklarálunk le, később ebbe a változó nem kaphat szöveges értéket. Hát akkor nézzük át ezen adattípusokat.

Tömb Szöveges Halmaz Rekord File Mutató Felsorolt Intervallum Egész Logikai Karakter

Tömb típus

A tömb a változók logikailag összerendelt halmaza. Vajon ez mit is takar? Először ismerjük felépítését majd aztán megtudjuk, miért is hasznos.

VAR változó:ARRAY [index..index(,index..index)...] OF alaptípus;

Az array kulcs szóval jelezzük, hogy tömböt akarunk létre hozni, majd a [ ] között megadjuk, mennyi elemet tartalmazzon, illetve hány dimenziós legyen a tömb. Pl.:

VAR t:array [1..10] of byte;

VAR t:array [1..10,1..10] of byte;

A fenti tömböt vektornak (1D) hívjuk, míg a másodikat mátrixnak (2D), de van több dimenziós tömb is. A tömb elemeire a következő módon tudunk hivatkozni: t[1]:=-3;, de változókat is használhatunk t[i]:=5;.

Szöveges típus

Ez egy szövegváltozó, melynek maximális hossza 255 karakter lehet. Ha a hosszát nem adjuk meg akkor az alapértéket veszi fel a 255. A névéből kitünik, hogy alapvetően karaktereket tartalmaz álltalában, de numerikus értékeket is tárolhat, csak így nem végezhető vele művelet. Deklarálni pedig így kell:

VAR változó:STRING([ hossz ]);

Halmaz típus

Álltalam nem nagyon csípet típus, nem is használom. Ha viszont valaki megakarja ismerni közlebbről jelezze, és leírok róla minden fontos tudni valót

Rekord típus

Igen fontos típus, mely különböző elemeket fog össze. Ami azt jelenti, hogy úgy látjuk, használjuk az elemeket, mintha egy változók lennének, de csak logikailag egy változók! Deklarálás után tisztábban látható, a dolog ezért lássuk csak.

TYPE változó=RECORD

[ mező lista ]

END

Így asz'em nem egészen pontos ezért lássunk egy példát is.

TYPE pelda=RECORD

nev:string;

kor:byte;

END

Nos így érthető, remélem. Hivatkozni pedig így lehet a record egy elemére: pelda.nev:='Gerzson'. Mint látjátok van egy fix rész ( ez most a pelda ) és van egy változó része is ( pl nev ). A fix rész után csak egy (1) változó rész lehet, bár ez az egy is elhagyható.

File típus

Eddig az adatok csak a memóriában voltak tárolva, tehát a programból való kilépve elvesztek. Ezt elkerülhetjük, ha az adatokat a háttértárolón tároljuk, egy fileba elmentjük őket. Nos a Tp-ban három fajta file típus van ezek a következők: -szöveges, -típusos, -típus nélküli file. Akkor nézzük meg őket.

Szöveges file (text)

Tartalma olvasható szöveg, mely ASCII karakterekből felépülő sorokból áll. Ilyen például a txt állomány. A sorok végét a #13 és a #10 ASCII karakter zárja, ez a beolvasásnál lesz fontos. A file végét pedig a #26 karakter zárja. Deklarálása:

VAR változó:TEXT;

Típusos file

Tartalma nem olvasható szöveg :). Direk elérésű, akárhányadik elemére tudunk hivatkozni (ala tömb). Ezen ugrálást segíti elő egy állomány mutató, melnek értékét magad tudod változtatni. A mutató típusa LongInt. Ja nagyon fontos, hogy az elemek egyforma méretűek és típusúak legyenek. Deklarálása:

VAR változó: FILE OF alaptípus;

Típus nélküli file

Hasonlít a típusos filehoz, de elemeire nem a típus, hanem a hossz jellemző. Álltalában akkor használnánk ha ismeretlen lenne az file, vagy gyors adatmozgatásra lenne szükség. Viszont nem igazán jó megoldás, inkább a programunkat tervezzük az előbbi típusokra, csak speckó esetben érdemes használni. A komponenshossz megadható ( alapban 128). Ennyi.

Mutató típus

Itt nem a TP álltal előre lefoglalt memóriába tudunk adatokat mozgatni, hanem mi keresünk üres memória részt és oda írjuk a változó értékét. Nem részletezem, mert a 2000/02 CD Dudi nagyon jól elmagyarázta már.

Valós típus

Lebegő pontos számábrázolás. Csak ezen típusokkal tudunk tört számot tárolni a memóriában. Matematikai társprocesszor nélkül csak a real használható. A kiíratásuk speckó:

writeln(a változó,milyen hosszon jelenjen meg a változó értéke, hány tizedes jelenjen meg);

Típus | Kezdőérték |  | Végérték | Pontosság
REAL | -10 EXP 38 | ... | -10 EXP 38 | 11 jegyre
SINGLE | -10 EXP 38 | ... | -10 EXP 38 | 5 jegyre
DOUBLE | -10 EXP 308 | ... | -10 EXP 308 | 15 jegyre
EXTENDED | -10 EXP 4932 | ... | -10 EXP 4932 | 20 jegyre
COMP | -2* 10 EXP 64 | ... | -2* 10 EXP 64 | Valós egész

Felsorolt típus

Előre megadjuk, hogy milyen értékeket vehet fel a változó a deklarációnál, viszont ezen értékek csak azonosítók lehetnek. Ezt a típus nem lehet a képernyőre kiiratni, vagy beolvastattni. Deklarálás:

VAR változó:felsorolás;

Talán egy példán könnyebben lehet szemléltetni:

VAR nyelv:(angol,német,francia,orosz);

Intervallum típus

Nos, ez hasonlít a fent említett típushoz bizonyos szempontikból. Itt már egy létező sorszámozott típus egy intervallumát adhatjuk meg. Elsősorban a program tesztelésénél van nagy szerepe, ugyanis ha illegális értéket kapp a program akkor hiba üzenettel kilép. Deklarálása:

VAR változó:intervallum;

VAR szam:-100..100;

Egész típus

Mint a nevük is mutatja, ezek a típusok értéke csak egész szám lehet. Nincs mit hozzá fűznöm.

Típus | Kezdőérték |  | Végérték
Shortint | -128 | ... | +127
Byte | 0 | ... | 255
Integer | -32768 | ... | 32767
Word | 0 | ... | 65535
Longint | -2147483648 | ... | +2147483647

Még valami. A deklarálás: VAR változó:alaptípus;

Logikai típus

Ez a típus olyan mint egy két állású kapcsoló. Két értéket vehet fel, igazat vagy hamisat. Úgy kapértéket, hogy az értékadás jobb oldalán egy logikai típusú kifejezés áll. Példán keresztül érthetőbb: ok:=(5<=10);. Remélem érthető. Ide tartozik még a logikai műveletek igazságtáblázata:

És -> A and B akkor igaz, ha mindkettő igaz.

Vagy -> A or B akkor hamis, ha mindkettő hamis.

Kizáró vagy -> akkor igaz, ha a kettő közül pontosan az egyik igaz.

Nem -> Not

Karakter típus

Egy kódot tartalmaz, melyet a használatban lévő kódrendszer határoz meg. Nálunk ez speciel az ASCII kódrendszer, melyben maximum 256-féle karakter van. A 32 kódtól kezdődő karaktereket meg lehet jelenítettni a képernyőn. A 0...31 közé eső kódok az úgynevezett kontrollkarakterek. Használata egy értelmű, főleg menü készítésnél hasznos. Deklarálása:

VAR változó:char;

Vissza