Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaBálint Hegedűs Megváltozta több, mint 10 éve
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ú
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.