OBJECT PASCAL ADATTÍPUSOK
Új kifejezés: Az Object Pascalban az adattípus meghatározza annak a módját, hogy a fordítóprogram hogyan tárolja az információt a memóriában.
Van olyan programnyelv, ahol át tudsz tenni akármilyen típusú értéket változónak. Példának okáért nézzük az alábbi BASIC kódot:
X = -1;
X = 1000;
X = 3.14;
A BASIC-ben az értelmezőprogram eléggé ügyel az elhelyezésekre, ezért be tud tenni akármekkora méretű, akármilyen típusú számot.
A VÁLTOZÓK DEKLARÁLÁSA
Az Object Pascalban ki kell fejezned a változó típusát, mielőtt használhatnád azt:
var
X1 : Integer;
X : Integer;
Y : Double;
Z : Byte;
{ ...later }
X1 := -1;
X := 1000;
Y := 3.14;
Z := 27;
Ezzel lehetővé teszed a fordítóprogramnak, hogy ellenőrizzen és megbizonyosodjon arról, hogy a dolgok rendben mennek majd, ha a program fut. Az adattípusok helytelen használatának következménye az lesz, hogy a fordító hibát jelez vagy figyelmeztetést küld, amit analizálhatsz és korrigálhatsz, megelőzheted a problémákat. Valamely adattípusok jelöltek, valamelyek pedig jelöletlenek. A jelöltek tartalmazhatnak negatív és pezitív számokat, míg a nem jelöltek csak pozitív számokat. A Tábla 1.1 mutatja a főbb adattípusokat az Object Pascal-ban, a memóriaigény mennyiségét és az értéktartományokat. Ez a tábla nem tartalmazza a karaktersor-típusokat (string). Ezekről később természetesen szót fogunk ejteni egy szakasz erejéig.
TÁBLA 1.1. ADATTÍPUSOK AZ OBJECT PASCALBAN (32-BIT PROGRAMOK).
Data Type Size in Bytes Possible Range of Values
ShortInt 1 -128 to 127
Byte 1 0 to 255
Char 1 0 to 255 (same as Byte)
WideChar 2 0 to 65,535 (same as Word)
SmallInt 2 -32,768 to 32,767
Word 2 0 to 65,535
LongInt 4 -2,147,483,648 to 2,147,483,647
Int64 8 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
Integer 4 Same as LongInt
Cardinal 4 0 to 2,147,483,647
Single 4 1.5 ¥ 10-45 to 3.4 ¥ 1038
Double 8 5.0 ¥ 10-324 to 1.7 ¥ 10308
Real 8 5.0 ¥ 10-324 to 1.7 ¥ 10308 (same as Double)
Extended 10 3.4 ¥ 10-4932 to 1.1 ¥ 104932
Comp 8 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
Currency 8 -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Boolean 1 True or False
Variant 16 Varies
Vizsgáljuk meg a Tábla 1.1-t, és azt már észre is vettük, hogy az Integer (=egész) ugyanaz, mint a LongInt. Szóval felteheted azt a kérdést, hogy miért van az Object Pascalban két adattípus, mikor ugyanaz a kettő.
Egy 16-bites fejlesztői környezetben egy Integer 2 byte-ot foglal, a LongInt pedig 4-et.
A 32-bites fejlesztői környezetben teljesen egyforma értékűek és nagyságúak. A Delphi 4-gyel csak 32 bites programokat készíthetünk, szóval a két elnevezés egyforma és felesleges. A legtöbb programozó az Integert használja a LongInt helyett.
Azt is észrevehetted, hogy az Int64 és a Comp (computational = számítható) típusok közös értéktartományba tartoznak. A külömbség a kettő között a mód, ahogyan a fordító kezeli Őket.
Az Int64 típus egy egész típus, és a Comp pedig egy valós típus. Elég kevés az indok arra, hogy a Comp típust használd a programjaidban.
Mégegy dolog, hogy a Real és a Double adattípusok is egyformák. A Delphi előző verzióiban a Real egy 6-byte-os változó volt. Jelen esetben 8 byte-os. Ez a változás tette lehetővé a jelen processzoraival való kompatibilitást. A Real típus elavultnak tekinthető, ezért inkább a Double-t használjuk a Delphi alkalmazásaiban.
Megjegyzés: A SINGLE, DOUBLE, EXTENDED és CURRENCY adattípusok használnak tizedestörteket is. Az összes többi adattípus csak egész számokkal működik. Egy egészes adattípushoz nem utalhatsz tizedestörtet tartalmazó értéket. Például a köv. kód fordítóhibát okoz:
var
X : Integer;
{ Later... }
X := 3.75;
Nem feltétlen kell aggódnod ezek miatt, mert a fordítóprogram nagyon jó abból a szempontból, hogy megmondja mit tehetsz és mit nem. Mindenesetre meg fogsz lepődni, milyen kevésszer kell használnod tizedestörteket a legtöbb Windows-program esetében…
OBJECT PASCAL ADATTÍPUSOK
Új kifejezés: Az Object Pascalban az adattípus meghatározza annak a módját, hogy a fordítóprogram hogyan tárolja az információt a memóriában.
Van olyan programnyelv, ahol át tudsz tenni akármilyen típusú értéket változónak. Példának okáért nézzük az alábbi BASIC kódot:
X = -1;
X = 1000;
X = 3.14;
A BASIC-ben az értelmezőprogram eléggé ügyel az elhelyezésekre, ezért be tud tenni akármekkora méretű, akármilyen típusú számot.
A VÁLTOZÓK DEKLARÁLÁSA
Az Object Pascalban ki kell fejezned a változó típusát, mielőtt használhatnád azt:
var
X1 : Integer;
X : Integer;
Y : Double;
Z : Byte;
{ ...later }
X1 := -1;
X := 1000;
Y := 3.14;
Z := 27;
Ezzel lehetővé teszed a fordítóprogramnak, hogy ellenőrizzen és megbizonyosodjon arról, hogy a dolgok rendben mennek majd, ha a program fut. Az adattípusok helytelen használatának következménye az lesz, hogy a fordító hibát jelez vagy figyelmeztetést küld, amit analizálhatsz és korrigálhatsz, megelőzheted a problémákat. Valamely adattípusok jelöltek, valamelyek pedig jelöletlenek. A jelöltek tartalmazhatnak negatív és pezitív számokat, míg a nem jelöltek csak pozitív számokat. A Tábla 1.1 mutatja a főbb adattípusokat az Object Pascal-ban, a memóriaigény mennyiségét és az értéktartományokat. Ez a tábla nem tartalmazza a karaktersor-típusokat (string). Ezekről később természetesen szót fogunk ejteni egy szakasz erejéig.
TÁBLA 1.1. ADATTÍPUSOK AZ OBJECT PASCALBAN (32-BIT PROGRAMOK).
Data Type Size in Bytes Possible Range of Values
ShortInt 1 -128 to 127
Byte 1 0 to 255
Char 1 0 to 255 (same as Byte)
WideChar 2 0 to 65,535 (same as Word)
SmallInt 2 -32,768 to 32,767
Word 2 0 to 65,535
LongInt 4 -2,147,483,648 to 2,147,483,647
Int64 8 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
Integer 4 Same as LongInt
Cardinal 4 0 to 2,147,483,647
Single 4 1.5 ¥ 10-45 to 3.4 ¥ 1038
Double 8 5.0 ¥ 10-324 to 1.7 ¥ 10308
Real 8 5.0 ¥ 10-324 to 1.7 ¥ 10308 (same as Double)
Extended 10 3.4 ¥ 10-4932 to 1.1 ¥ 104932
Comp 8 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
Currency 8 -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Boolean 1 True or False
Variant 16 Varies
Vizsgáljuk meg a Tábla 1.1-t, és azt már észre is vettük, hogy az Integer (=egész) ugyanaz, mint a LongInt. Szóval felteheted azt a kérdést, hogy miért van az Object Pascalban két adattípus, mikor ugyanaz a kettő.
Egy 16-bites fejlesztői környezetben egy Integer 2 byte-ot foglal, a LongInt pedig 4-et.
A 32-bites fejlesztői környezetben teljesen egyforma értékűek és nagyságúak. A Delphi 4-gyel csak 32 bites programokat készíthetünk, szóval a két elnevezés egyforma és felesleges. A legtöbb programozó az Integert használja a LongInt helyett.
Azt is észrevehetted, hogy az Int64 és a Comp (computational = számítható) típusok közös értéktartományba tartoznak. A külömbség a kettő között a mód, ahogyan a fordító kezeli Őket.
Az Int64 típus egy egész típus, és a Comp pedig egy valós típus. Elég kevés az indok arra, hogy a Comp típust használd a programjaidban.
Mégegy dolog, hogy a Real és a Double adattípusok is egyformák. A Delphi előző verzióiban a Real egy 6-byte-os változó volt. Jelen esetben 8 byte-os. Ez a változás tette lehetővé a jelen processzoraival való kompatibilitást. A Real típus elavultnak tekinthető, ezért inkább a Double-t használjuk a Delphi alkalmazásaiban.
Megjegyzés: A SINGLE, DOUBLE, EXTENDED és CURRENCY adattípusok használnak tizedestörteket is. Az összes többi adattípus csak egész számokkal működik. Egy egészes adattípushoz nem utalhatsz tizedestörtet tartalmazó értéket. Például a köv. kód fordítóhibát okoz:
var
X : Integer;
{ Later... }
X := 3.75;
Nem feltétlen kell aggódnod ezek miatt, mert a fordítóprogram nagyon jó abból a szempontból, hogy megmondja mit tehetsz és mit nem. Mindenesetre meg fogsz lepődni, milyen kevésszer kell használnod tizedestörteket a legtöbb Windows-program esetében…
|