|
TURBO PASCAL TÍPUSRENDSZERE |
||||||||||||
|
Egyszeru |
Összetett |
Mu- |
||||||||||
|
String |
Valós |
Sorszámozott |
Tömb Állomány Rekord Halmaz Objektum |
array file record set object |
^ |
|||||||
|
Elore definiált |
Felso- |
Inter- |
||||||||||
|
Logikai |
Egész |
Karakter |
||||||||||
|
string |
real |
boolean |
integer shortint longint |
char |
||||||||
Egyszeru típusok
Sorszámozott típusok :
Sorszámozott típusok :
| Egész típusok |
|
Típus |
Értékei |
Tárolás |
|
Byte |
0..255 |
Elojel nélküli, 8 bit |
|
Word |
0..65,535 |
Elojel nélküli, 16 bit |
|
ShortInt |
-128..127 |
Elojeles, 8 bit |
|
Integer |
-32,768..32,767 |
Elojeles, 16 bit |
|
LongInt |
-2,147,483,648.. |
Elojeles, 32 bit |
| Karakteres típus - CHAR |
| Logikai típus - BOOLEAN |
Felsorolt típus
end.
Intervallum típus
Egy már létezo sorszámozott típus egy intervalluma. Tárolás: az intervallum típus használatával nem spórolunk memóriát. A tárolás a legkisebb olyan típus szerint történik, amelybe belefér az alsó és a felso határ is.
Var inttip : 'a'..'m';
inttip2 : -1..100;
Begin
inttip := 'b';
inttip2 := 56;
End.
Valós típusok
A valós számokat lebegopontosan szokták ábrázolni.
Lebego
pontos alak: [mantissza][E][exponens].Jelentése : ![]()
A valós számok kiírása - hacsak nem adjuk meg a kiírandó jegyek számát - lebegopontos formában történik, adott hosszon.
|
Típus |
Értékei |
Tárolás |
Pontosság |
|
Real |
2.9E-39..1.7E38 |
6 bájt |
11-12 jegy |
|
Single |
1.5E45..3.4E38 |
4 bájt |
7-8 jegy |
|
Double |
5.0E-324..1.7E308 |
8 bájt |
15-16 jegy |
|
Extended |
3.4E-4932..1.1E4932 |
10 bájt |
19-20 jegy |
|
Comp |
(-9.2E18..9.2E18) |
8 bájt |
19-20 jegy egész érték |
Tárolás: Elojel (1 bit) + Szignifikáns tizedesei + Exponens. A tárolás mindig a legkisebb helyértéku bájttal kezdodik. Az elojelbit mindig az utolsó.
Karakterlánc típus - STRING [maxhossz]
. Ha elhagyjuk m, maxhossz=255. A karakterlánc elemei Char típusúak, azaz bármilyen ASCII karakterek lehetnek. A karakterlánc típusú változó egy dinamikus hosszúságú karaktersorozat. Hivatkozás a karakterlánc egy elemére: azonosító[index] , ahol
. A string hosszát a LENGTH függvény adja vissza. Tárolás: a string típus memóriaigénye: maxhossz+1 bájt.
Mivel a string, tovább bontható karakterekre, ezért szokták az összetett típusokhoz is sorolni.
Összetett típusok:
Állomány típusok:
Szöveges állományok
Típusos állományok
Típusnélküli állományok
Tömb típus - ARRAY[indextítpus] OF alaptípus
Meghatározott számú azonos típusú elemekbol álló összetett adattípus.
| Dimenziók száma: A turbo pascal gyakorlatilag nem korlátozza a dimenziók számát, a pontos érték implementációfüggo, de elég nagy. pl.:255 (A standard pascal csak egydimenziós tömböket kezelt, de ekkor is megvolt a lehetoségünk, hogy többdimenziós tömböt tömbök tömbjeként hozzunk létre.) | |
| Dimenziók indexkészletének típusa: A turbo pascalban sorszámozott típus lehet. | |
| Dimenziók indexkészletének tartománya: A turbó pascalban az alsó és felso határt is a programozó szabja meg. |
Elemeinek típusa: Állomány és objektumtípus kivételével bármi lehet
A tömb elemei szintén lehetnek tömbök, így is deklarálhatunk két, három, ill több dimenziós tömböket. Az egydimenziós tömböt vektornak, a kétdimenziósat mátrixnak szokták hívni. A tömb elemeire a tömbazonosítóval és az elem indexével hivatkozhatunk. Tárolás: a tárolás sorfolytonosan történik. A lefoglalt memóriaterület méretét az alaptípus mérete és az egyes indextípusok számossága határozza meg.
Type tömb = Array [1..80] Of Char;
Rekord típus - RECORD [mezolista] END
Egy rekord, különbözo típusú elemeket fog össze.
Hivatkozás a rekord egy elemére: rekordazonosító.mezoazonosító.
Hivatkozhatunk az egész recordra a nevének megadásával ill. a record egy mezojére minosítéssel. pl.:
Halmaztípus - SET OF alaptípus
A halmaz speciális adattípus, melyen a matematikai halmazelmélet muveletei végezhetok el. A halmaz elemi ugyanolyan típusúak. Az alaptípus csak sorszámozott lehet, melyben a lehetséges elemek so
rszámai 0 és 255 közöttiek lehetnek. Azaz a halmaz maximális elemszáma: 256. Egy halmazt megadhatunk úgy, hogy felsoroljuk elemeit, vagy egy intervallumot adunk meg. Az üres halmaz: [] .Tárolás : 1 elem = 1 bit.
Muveletek : * metszet; + egyesítés; - különbség; =: egyenloség; <>: nem egyenlo; <=: részhalmaz; >=: részhalmaz; IN elemvizsgálat.
in : eleme; logikai értéket ad
+ : únió, egyesítés; multihalmaz esetén mindem elem megjelenik az únióban
* : metszet; multihalmaz esetén ahányszor mind a kettoben b
enne van- : különbség
létrehozás : 1.megadunk valamilyen elôírást, feltételt, predikátumot, amely alapján
X={a 200-nál nem nagyobb páros, pozitív egészek}
2. felsoroljuk a halmaz elemeit
Y={fekete, piros, kék, zöld, sárga. fehér}
3. üres halmaz
bôvítés : únióval
törlés : különbségképzéssel
csere : nincs - nem tudom megfogni az elemet, akkor sem, ha benne van
rendezés : nincs
keresés : nincs
elérés : nincs
feldolgozás
: a négy halmazmuvelettelHalmazok összehasonlítása : Két halmaz egyenlo (=), ha ugyanazon elemeket tartalmazza, különben nem egyenloek (<>).
Egy halmaz kisebb a másiknál, ha részhalmaza annak (valódi <, nem valódi<=).
Objektum típus
Állomány típusok
Mutató típusok:
Egy mutató típusú változó tartalma egy cím, amely egy másik, a végrehajtás során dinamikusan létrehozott változó memóriabeli elhelyezkedését adja meg. A magas szintu programozási nyelvekben az így megcímzett változó meghatározott alaptípussal rendelkezik.
Általánosan definiálva:
1. A pointer lehetôvé teszi egy, a végrehajtás során létrehozott struktúra elérését
2. A deklarációban meg kell adni a mutató által címzett objektum típusát
var P: ^Alaptípus;
3. Muveleti primitívek
P:=NIL;
Dispose(P);
·
egy másik pointerrel megcímzett objektumhoz való hozzáférésMielôtt a P mutatónak értékül adjuk a Q által címzett objektum címét figyeljünk rá, hogy felszabadítsuk a P-vel elôzôleg esetleg megcímzett objuktumot. Ellenkezô esetben ez az objektum foglalja ugyan a memórában a helyet, de nem tudjuk azt elérni, hiszen nincs saját azonosítója.
Hasonlóan, ha egy eljárásban egy lokális mutató típusú változó megcímez egy dinamikus struktúrát, akkor az eljárásból való kilépés elôtt gondoskodnunk kell arról, hogy ezt a struktúrát felszabadítsuk, vagy hozzáférhetôvé tegyük egy nem lokális változóval is. Ugyanis a lokális változók automatikus megszüntetése az eljárás végén nem szünteti meg az általuk címzett objektumot.
P^:=érték;
|
Op. |
Egész |
Valós |
Sztring |
Halmaz |
|
+ |
Összeadás |
Összeadás |
Összefuzés |
Únió |
|
- |
Kivonás |
Kivonás |
--- |
Különbség |
|
* |
Szorzás |
Szorzás |
--- |
Metszet |
|
/ |
--- |
Osztás |
--- |
--- |
|
DIV |
Osztás |
--- |
--- |
--- |
|
MOD |
Maradékos osztás |
--- |
--- |
--- |
|
|
Egész |
Logikai |
||
|
NOT |
Bitmód negálás |
Logikai negálás |
||
|
AND |
Bitmód ÉS |
Logikai ÉS |
||
|
OR |
Bitmód VAGY |
Logikai megengedo VAGY |
||
|
XOR |
Bitmód kizáró VAGY |
Logikai kizáró VAGY |
||
|
SHL |
Bitmód balra tolás |
|
||
|
SHR |
Bitmód jobbra tolás |
|
||
Összehasonlító operátorok adnak Boolean (logikai) eredményt:
|
Op. |
Mit jelent |
Milyen típusokat hasonlít össze |
|
= |
Egyenlo |
Megszámlálható, valós, sztring, halmaz, mutató |
|
<> |
Nem egyenlo |
Megszámlálható, valós, sztring, halmaz, mutató |
|
< |
Kisebb mint |
Megszámlálható, valós, sztring |
|
> |
Nagyobb mint |
Megszámlálható, valós, sztring |
|
<= |
Kisebb vagy egyenlo |
Megszámlálható, valós, sztring, halmaz |
|
>= |
Nagyobb vagy egyenlo |
Megszámlálható, alós, sztring, halmaz |
|
|
|
Mit ad vissza |
|
IN |
Tagja-e |
True-t, ha a bal oldali operandus (megszámlálható típus) tagja a jobb oldali operandusnak (halmaz típus)False-t, ha nem |
A turbo pascal precedencia szintei:
| @, not | |
| *, /, div, mod, and, shl, shr | |
| +, -, or, xor | |
| =, <>, <, >, <=, >=, in |