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

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Vezérlő utasítások.
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Algoritmusok.
 Megfigyelhető, hogy amikor több elem közötti összehasonlítás történik, akkor szükség van egyszerre több értékre is, főleg akkor, ha ezek az értékek jóval.
Erőállóképesség mérése Találjanak teszteket az irodalomban
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Ismétlés: Döntések a feltétel egy logikai kifejezés if feltétel then
Algoritmus és programozás
ADATBÁZIS KEZELÉS – Adattípusok
Műveletek logaritmussal
JavaScript.
Programozás alapjai.
Turbo Pascal Változók.
Programozás alapjai.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Mutatók, tömbök, függvények
Nat Pedellus Informatika 8. osztály óra.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Darupályák tervezésének alapjai
ISZAM III.évf. részére Bunkóczi László
Egyszerű típusok csoportosítása
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Az adatokról C# -ban.
szakmérnök hallgatók számára
Összetett adattípusok
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Programozási nyelvek Páll Boglárka.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Karakterláncok Páll Boglárka.
Összetett adattípusok a Pascal nyelvben
Programozási nyelvek Páll Boglárka.
A Pascal programozási nyelv alapjai
Ismétlés A pascal program szerkezete: program programnev; Programfej
Karakterláncok Páll Éva Boglárka. Ismétlés Deklaráció var s:string; Length(karlánc) Concat(karlánc1,...,karláncn) Copy(miből,honnan,hányat) Delete(miből,honnan,hányat)
Egydimenziós tömbök (Vektorok)
Ciklusok: 1. Számlálós ciklus
A Pascal programozási nyelv alapjai
Tömbök és programozási tételek
Programozási nyelvek, Pascal
Rendezések és szövegkezelő függvények
Összetett adattípusok
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Objektum orientált programozás
Webprogramozó tanfolyam
Objektum orientált programozás
A Visual Basic nyelvi elemei
Pole (array of...).  Zložený datový typ na ukladanie viacerých premených  Zápis: var meno_pola : array [ konce intervala ] of základný typ ; Základné.
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Mintapélda Készítsünk programot, amely beolvas egy egész számot, és eldönti arról, hogy prímszám-e. Készítsünk programot, amely beolvas egy egész számot,
Nat Pedellus Free Pascal Elágazások..
C Programozási alapok.
Free pascal feladatok
Algoritmizálás, adatmodellezés
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Excel programozás (makró)
Programtervezés, programozás I. 2.5 tömbök,stringek
Excel programozás (makró)
Bevezetés a programozásba Algoritmikus gondolkodás
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Változók.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

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

1. VÁLTOZÓTÍPUSOK

É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           ...

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 !

Object Pascal típusok

Egyszerű típusok

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

Ö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

Egész típusok

Valós típusok

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).

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

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

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ú

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

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

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

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

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  

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

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

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

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

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

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

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

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

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

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;

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);

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.

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

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 }

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.

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.

2. ELÁGAZÁSOK, CIKLUSOK

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)

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;

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 ;

Esetszétválasztás Case Kor Of 0..13 : Write('Gyerek') ; 14..17 : Write('Fiatal') ; 18..23 : Write('Ifjú') ; 24..59 : Write('Felnőtt') Else Write('Idős'); End ;

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

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