Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1. Változótípusok az Object Pascalban 2. Elágazások, ciklusok

Hasonló előadás


Az előadások a következő témára: "1. Változótípusok az Object Pascalban 2. Elágazások, ciklusok"— Előadás másolata:

1 1. Változótípusok az Object Pascalban 2. Elágazások, ciklusok
Negyedik Generációs Nyelvek ( Delphi ) 1. Változótípusok az Object Pascalban 2. Elágazások, ciklusok

2 1. VÁLTOZÓTÍPUSOK

3 Értékadó utasítás Változó-azonosító := Kifejezés ; A := 5 ;
B := A + 3 ; A := (B + 7) * 2 ; A kifejezés tartalmazhat: l           Változót A l           Konstanst 3 l           Műveletet + l           Zárójelet () l           ...

4 Ezek a típusok nem osztályok, mint a Javaban, hanem valós típusok !
Változótípusok Egyszerű típusok Összetett típusok Pointer Procedural Variant Ezek a típusok nem osztályok, mint a Javaban, hanem valós típusok !

5 Object Pascal típusok

6 Egyszerű típusok

7 Egyszerű típusok sorszámozott valós egész karakter logikai felsorolt
résztartomány valós

8 Összetett típusok string struktúrált típusok halmaztípus tömbtípus
rekord típus fájltípus osztálytípus osztályhivatkozás típus interfész típus

9 Egész típusok

10 Valós típusok

11 Logikai típusok Delphi logikai típusok Boolean, ByteBool, WordBool, és LongBool A Boolean és a ByteBool (Byte) típus 1bájtnyi memóriát foglal, WordBool 2 bájtot (Word), és a LongBool típus 4 bájtot (LongInt).

12 Memóriában foglalt hely
Stringek Típus Max. hossz Memóriában foglalt hely Használt karakterek ShortString 255 karakter 2-től 256 byte-ig AnsiString ~2^31 karakter 4 byte-tól 2GB-ig 8-bit (ANSI) karakterek WideString ~2^30 karakter Unicode karakterek

13 Stringek Turbo Pascal karakterlánc: max. 256 elemű #6 D e l p h i
Nulla végzésű karakterláncok Turbo Pascal karakterlánc: max. 256 elemű #6 D e l p h i C típusú karakterlánc: max. 64 K -1 elemű D e l p h i #0

14 Stringek (OP új lehetőségei)
Nulla végzésű karakterláncok Object Pascal - ban: String PChar = ^ Char; Array [0..Max] Of Char; Helyfoglalás: String és Array[0..Max] of Char esetén a fordító PChar esetén Mi Pascal C típusú

15

16 Konverziós függvények
Egész számok átalakítása Stringek átalakítása Lebegőpontos számok átalakítása Dátumok átalakítása

17 Egész számok átalakítása
IntToStr(Value: Integer): string; Integerből string IntToStr(Value: Int64): string; Int64-ből string IntToHex(Value: Integer; Digits: Integer): string; Integerből hexadecimális szám, amely string típusként kezelendő IntToHex(Value: Int64; Digits: Integer): string; Int64 típusból hexadecimális string

18 Egész számok átalakítása
A Digits paraméter,a hexadecimális szám(amely persze string típusú) minimum helyi értékeinek számát állítja be. IntToHex(5,2) 05 IntToHex(50,2) 32 IntToHex(500,2) 1F4

19 Stringek átalakítása A következő függvények stringet alakítanak át egész típussá, ha a konverzió nem sikerül EConvertError kivétel keletkezik lsd. Kivételek kezelése StrToInt(const S: string):Integer; Stringből integer StrToIntDef(const S: string; Default: Integer): Integer; Stringből integer, megadható egy Default érték, amelynek az a feladata, hogy konverziós hiba esetén nem kivétel képződik, hanem a függvény ezt az értéket adja vissza

20 Stringek átalakítása pl.: a:=StrToIntDef('15',100); a értéke 15 a:=StrToIntDef('15',100); a értéke 100 StrToInt64(const S: string):Int64; Stringből Int64 típus StrToInt64Def(const S: string; const Default: Int64): Int64; Stringből Int64 típus A második paraméter alapérték, amellyel hiba esetén tér vissza

21 Stringek átalakítása StrToFloat(const S: string): Extended; stringből lebegőpontos szám StrToFloatDef(const S:string; const Default: Extended): Extended; stringből lebegőpontos szám, hiba esetén alapértékkel

22 Stringek átalakítása StrToDate(const S: string): TDateTime;
stringből dátum típus StrToTime(const S: string): TDateTime; stringből idő típus StrToDateTime(const S:string): TDateTime; stringből dátum-idő típus

23 Lebegőpontos számok átalakítása
FloatToCurr(const Value: Extended): Currency; Extendedből Currency CurrToStr(Value: Currency): string; Currency típusból string FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): string; extendedből string a formátum megválasztásával, a Precision paraméterrel a szám jegyeinek számát adhatjuk meg, a Digits paraméterrel a minimális tizedesjegyek számát

24 Lebegőpontos számok átalakítása
CurrToStrF(Value: Currency; Format: TFloatFormat; Digits: Integer): string; currencyből string a formátum megválasztásával

25 Lebegőpontos számok átalakítása
A FloatToStrF és CurrToStrF függvények esetében a következő formátumokat választhatjuk: ffGeneral általános ffExponent kitevős, normálalakos ffFixed tizedestört, ahol a tizedesjegyek számát pontosan meg lehet adni ffNumber tizedestört ezres tagolással ffCurrency pénznem Megj.: ha a szám teljes hosszát kisebbre állítjuk, mint a szám hossza, minden esetben –a Format paramétertől függetlenül- kitevős alakban jelenik meg

26 Lebegőpontos számok átalakítása
FormatFloat(const Format: string; Value: Extended): string; Extendedből string formátummegadással FormatCurr(const Format: string; Value: Currency): string; Currencyből string formátummegadással  A FormatFloat és a FormatCurr függvényeknél használhatunk formátumkódokat

27 Lebegőpontos számok átalakítása
Formátumkód jelentése # számjegy, ha nem áll annyi számjegyből, akkor nem jelenik meg semmi 0 számjegy, ha nem áll annyi számjegyből, akkor 0 jelenik meg . tizedestört megjelenítés , ezres-elávasztójel E+ E- e+ e- kitevős alakú megjelenítés ’szoveg’ ”szoveg” szoveg megjelenése a szám után ; a formátumkód a pozítiv, negatív és a nulla formátumkódjait tartalmazza, a ; ezeket választja el

28 Dátumok átalakítása DateToStr(Date: TDateTime): string; dátum formátumból string formátum TimeToStr(Time: TDateTime): string; idő formátumból string formátum DateTimeToStr(DateTime: TDateTime): string; idő/dátum formátumból string formátum

29 Tömbök A Pascalben a tömbök azonos típusú, adatokat tárolnak
Var Tömbnév : Array[Kezd..Vég] Of Típus; A Kezd a kezdőindex, a Vég az utolsó index. A Delphiben az ilyen típusú tömböket nevezzük statikus tömböknek dinamikus tömb: elemszáma futáskor dől el nyitott tömb paraméter: az azonos típust sem kell biztosítanunk, tárolhatunk egyazon tömbben különböző típusú elemeket

30 Tömbök (dinamikus tömb)
A Delphi 4 verziótól kezdve támogatja a dinamikus tömbök kezelését. A dinamikus tömb mérete nem fordításkor, hanem futáskor dől el. A dinamikus tömb bármikor bővíthető elemekkel, kitörölhetünk elemeket, ill. megszüntethetjük A dinamikus tömb deklarációja Var T : Array Of Real;

31 Tömbök (dinamikus tömb)
A SetLength eljárás segítségével bővíthetjük a tömböt: Pl.: SetLength(T, 5) hatására a tömb 6 elemű lesz, az elemek értékei T[0]=0, T[1]=0, T[2]=0, T[3]=0, T[4]=0, T[5]=0 A Length függvény(System unit) a tömb elemeinek darabszámát adja vissza, a Low függvény az alsó, míg a High a felső indexet adja vissza. Dinamikus tömbök esetében az alsó index mindig 0. A dinamikus tömb megszüntetése: T:=Nil; SetLength(T,0); //a memóriából nem törlődik! Finalize(T);

32 Nyitott tömb paraméterek
A nyitott tömb paraméter lehetőséget biztosít arra, hogy olyan alprogramokat alakítsunk ki, melyek hívása nem függ a paramétertömb méretétől. Pl. Var Ntömb : Array Of Integer; Az alprogramon belül a Low függvénnyel a nyitott tömb paraméter első elemének indexét (legtöbbször 0), a High függvénnyel az utolsó elemének indexét kérhetjük le.

33 Variant típus A Variant változókban az összes Delphi típus tárolható. A Delphi automatikusan elvégzi a konverziókat, így nem kell foglalkoznunk a változó típusával. A Variant változók használata lassúbb, mint más változóké a konverziók miatt, memóriaigénye sem a legjobb (16 byte), mégis kerülhetünk olyan helyzetbe, hogy a használata elkerülhetetlen. A Variant típus használata megkönnyíti az OLE ügyfél vagy kliens automatizmusok írását

34 Változók deklarációja
Pascal-ban a változókat deklarálni kell! Var Letszam : Integer ; { 2 byte } Fejadag, Osszesen : Real ; { 6-6 byte }

35 Sorszámozott típusok  Low : A függvény viszaaadja a paraméterként adott változó típusának alsó értékhatárát. Tömb típusnál a tömb legkisebb elemének indexét adja vissza High : A függvény viszaaadja a paraméterként adott változó típusának felső értékhatárát. Tömb típusnál a tömb legnagyobb elemének indexét adja vissza  Pred : A függvény a paraméterként megadott változó típusának értékkészletéből visszaadja az előtte álló értékét.

36 Sorszámozott típusok  Succ : A függvény a paraméterként megadott változó típusának értékkészletéből visszaadja a mögötte álló értékét.  Dec : Az eljárás a paraméterként megadott változó értékét csökkenti. Inc : Az eljárás a paraméterként megadott változó értékét növeli.

37 2. ELÁGAZÁSOK, CIKLUSOK

38 Elágazások Egyágú Kétágú Esetszétválasztás (Case) If F1 Then U1 ; vagy
If F1 Then Begin U11 ; U12 ; ... U1n ; End; Kétágú Esetszétválasztás (Case)

39 Elágazások (kétágú) If F1 Then Utasítás1 Else Utasítás2 ; Vagy
Begin Utasítások ; End Else Begin Utasítások ; End;

40 Esetszétválasztás Sorszámozott típusú konstans kifejezés Case kifejezés Of érték(ek)1 : utasítás1 ; érték(ek)2 : utasítás2 ; [Else utasítás ] End ;

41 Esetszétválasztás Case Kor Of : Write('Gyerek') ; : Write('Fiatal') ; : Write('Ifjú') ; : Write('Felnőtt') Else Write('Idős'); End ;

42 A ciklusban maradás feltétele
Ciklusok Előltesztelős While F1 Do Begin Utasítások ; End ; Hátultesztelős Repeat Until F1 ; Számlálós A ciklusban maradás feltétele A kilépés feltétele

43 Ciklusok Számlálós ciklus For Cv:=Kezdőérték To Végérték Do Begin
Utasítások ; End ; For Cv:=Végérték DownTo Kezdőérték Do


Letölteni ppt "1. Változótípusok az Object Pascalban 2. Elágazások, ciklusok"

Hasonló előadás


Google Hirdetések