FŐOLDAL

KAPCSOLAT

MÉDIAAJÁNLAT


REGISZTRÁCIÓ HÍRLEVÉL
PC-ÁRUHÁZ DRIVERS SZAMITOGEP Antivirus SZAKÜZLET

· Friss (Szoftver)
·  Úmutató az Intel SpeedStep bekapcsolásásához
·  Úmutató a Cool'n'Quiet bekapcsolásásához
·  Windows XP ”Reloaded” - A hivatalos álláspont
·  Peer-to-peer telefonálás egyszerűen
·  Novell Kisvállalati Csomag 6.5
·  Microsoft Office Visio 2003
·  Windows Media
·  Spamek szűrése szabállyal
·  Itt a SUSE LINUX 9.0
·  OpenOffice
·  NetMeeting
·  Shavlik HFNetChk 4.0 – Windowsupdate.com helyett
·  Új email szerver a SuSE-től
·  Novembertől a boltokban a magyar SuSE Linux 7.3
·  COLOBOT
·  Készítsünk honlapot
·  Hány lapra elegendő a festék???
·  Az NTFS 5 filerendszer
·  Idő szinkronizálása Windows 2000 erdőben
·  A Windows2000 lemezkezelésének újdonságai
· Cikkek > Szoftver
· Borland Delphi 4 – 21 nap alatt 10. rész
Dátum : 2000-10-28 11:58:34
Szerző : Pibee


VÁLTOZTATÁSOK ADATTÍPUSOK KÖZÖTT


Az Object Pascal amikor lehetséges, átalakításokat végez különböző fájltípusok közt. Nézzük meg a köv. kódrészletet példának okáért:

var
Res : SmallInt;
Num1 : Integer;
Num2 : Integer;
{ Later... }
Num1 := 200;
Num2 := 200;
Res := Num1 * Num2;

Ebben az esetben megpróbáltam kiosztani két változó sokszorosításának az eredményét egy SmallInt-be. Még ez a formáció is két adattípusból van, az Object Pascal viszont itt képes konverzációt végezni köztük. Szeretnéd tudni az eredményt? Meglepődsz bizonyára, mert az eredmény –25,536. Ha pedig megnézed az 1.1-es táblát, láthatod, hogy a SmallInt-nek maximum értéke 32,767 lehet. Mi történik, ha veszel egy maximum értékű SmallInt-et, 32,767-tel, és hozzáadsz 1-et? Megkapod a –32,768 értéket. Ez alapvetően olyan, mint amikor a kilométeróra 99,999-ről 00,000-ra változik, mikor megteszed az utolsó mérföldet. Hogy lásd, kövesd a köv. lépéseket:

1. Kezdj egy új alkalmazást és a „label”-t és a „button”-t tedd a lapra.
2. Kettős kattintás a „button”-ra, készíts egy eseményvezérlőt (event handler) a gomb „OnClick” eseményéhez.
3. Módosítsd az eseményvezérlőt, hogy az a következőképpen nézzen ki:

procedure TForm1.Button1Click(Sender: TObject);
var
X : SmallInt;
begin
X := 32767;
X := X + 1;
Label1.Caption := IntToStr(X);
end;

4. Futtasd a programot, és kattints a gombra.

És most látni fogod, hogy a címke szövege –32768-ra változott, mikor rákattintottál a gombra (ebben az esetben csodálkozhatsz talán, hogy az IntToStr egész értéket fordított a parancssorba.) Ez a feladat megmutatta, hogy 32767 meg 1 egyenlő –32768! Oké, végülis nem teljesen.
Ez a példa valójában illusztrálta azt, amit úgy ismerünk, hogy overflow vagy wrapping. (overflow- túlcsordulás, wrapping- betűrés)
Tehát felismerheted, hogy a változóid maximum lehetséges értékei tartalmazhatják és megválaszthatják az adattípust, ami elég nagy ahhoz, hogy garantálja hogy az értéket túlcsordulás nélkül a változón belül.
A legtöbb esetben nem tudsz olyan messzire menni, hogy hiba történjen, ha egész változót használsz. Elég valószínűtlen, hogy a betűréssel találkozol, mert az Integer adattípus –2 billió és +2 billió közti intervallumot ad meg értelmezési tartományként.
Ajaj, hol is tartottam? Ja, persze, az automatikus fájlkonvertálásról beszéltem. Szóval, vannak olyan esetek, amikor az Object Pascal nem tudja ezt végrehajtani. Ha ez az eset merül fel, kapsz egy fordító hibaüzenetet, ami valami ilyesmit fog kiírni az Incompatible (nem kompatíbilis) fájl-sorok között:
’Integer’ és ’Real’.
Ez a hibaüzenet azt jelenti, hogy te egy értéket akartál kifejezni, amit ebben az adattípusban nem lehet tárolni. Egy másik fordítóhiba, amivel találkozhatsz, azt „range checking”nek hívják.( Intervallum-ellenőrzés )
Nézzük ezt a kódot:

var
X : Byte;
begin
X := 1000;
end;

Ez a kód fordítóhibát okoz, mert a „konstanskifejezés megsértette az értékhatárokat”. A fordító azt üzeni neked, hogy nem oszthatsz ki 1000-s értéket az X változóhoz, ami Byte-tal van kifejezve, mert egy Byte csak 0 és 255 között tarthat értékeket.


>>Folytatás...



Warning: require(../forum/comment.php) [function.require]: failed to open stream: No such file or directory in /var/www/www.szamitogep.hu/show/read.php on line 106

Warning: require(../forum/comment.php) [function.require]: failed to open stream: No such file or directory in /var/www/www.szamitogep.hu/show/read.php on line 106

Fatal error: require() [function.require]: Failed opening required '../forum/comment.php' (include_path='.:/usr/share/php/') in /var/www/www.szamitogep.hu/show/read.php on line 106