A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat | |||
inf-prog-fszi:adattipusok_valtozok [2017/06/17 13:56] beistvan |
inf-prog-fszi:adattipusok_valtozok [2017/06/17 14:02] (aktuális) beistvan |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | ====== Adattípusok. Állandók. Változók deklarálása. Összetett adattípusok. Rekord típus ====== | ||
+ | |||
+ | ===== Állandók ===== | ||
+ | Az állandók deklarálás a '' | ||
+ | |||
+ | <code pascal allando.txt> | ||
+ | const | ||
+ | azonosító = érték; | ||
+ | </ | ||
+ | |||
+ | Példa. | ||
+ | |||
+ | <code pascal allandok.pas> | ||
+ | const | ||
+ | pi = 3.14; | ||
+ | avogadro = 6.022E23; | ||
+ | ev = 2017; | ||
+ | nev = ' | ||
+ | megfelelt = true; | ||
+ | </ | ||
+ | |||
+ | Típusos állandók | ||
+ | |||
+ | <code pascal tipusos_allandok.pas> | ||
+ | const | ||
+ | r : real = 20; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Változók ===== | ||
+ | A változók deklarálás a '' | ||
+ | |||
+ | <code pascal valtozo.txt> | ||
+ | var | ||
+ | azonosító : adattípus; | ||
+ | </ | ||
+ | |||
+ | ===== Adattípusok ===== | ||
+ | |||
+ | A Pascal alapvető elemi típusai: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | A szöveges adattípusokat karakterláncokban tárolják, úgynevezett '' | ||
+ | |||
+ | Példa | ||
+ | |||
+ | <code pascal valtozok.pas> | ||
+ | var | ||
+ | ev, ho, jegy : integer; | ||
+ | trulet : real; | ||
+ | betu : char; | ||
+ | leadva : boolean; | ||
+ | keresznev : string; | ||
+ | </ | ||
+ | |||
+ | Egyéb FreePascal szöveges adattípusok: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Egész típusok a FreePascal-ban | ||
+ | |||
+ | |||
+ | ^ Típus | ||
+ | | Byte | 0 .. 255 | 1 | | ||
+ | | Shortint | ||
+ | | Smallint | ||
+ | | Word | 0 .. 65535 | 2 | | ||
+ | | Integer | ||
+ | | Cardinal | ||
+ | | Longint | ||
+ | | Longword | ||
+ | | Int64 | -9223372036854775808 .. 9223372036854775807 | ||
+ | | QWord | 0 .. 18446744073709551615 8 | ||
+ | |||
+ | Valós típusok a FreePascal-ban | ||
+ | |||
+ | ^ Típus | ||
+ | | Real | platformfüggő | ||
+ | | Single | ||
+ | | Double | ||
+ | | Extended | ||
+ | | Comp | -2E64+1 .. 2E63-1 | ||
+ | | Currency | ||
+ | |||
+ | |||
+ | ===== Saját típus deklarálása ===== | ||
+ | |||
+ | <code pascal sajattipus.txt> | ||
+ | type | ||
+ | adattípus_azonosító = típus_specifikáció; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Felsorolás típus ===== | ||
+ | |||
+ | Formátum | ||
+ | |||
+ | <code pascal felsorolas.txt> | ||
+ | type | ||
+ | adattípus_azonosító = (azonosító_1, | ||
+ | </ | ||
+ | |||
+ | Példa | ||
+ | |||
+ | <code pascal felsorolas.pas> | ||
+ | program kartyazas; | ||
+ | type | ||
+ | kartya_szin = (tok, makk, piros, zold); | ||
+ | var | ||
+ | piros_kartya : kartya_szin; | ||
+ | begin | ||
+ | piros_kartya := piros; | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Tartomány típus ===== | ||
+ | |||
+ | Formátum | ||
+ | |||
+ | <code pascal tartomany.txt> | ||
+ | type | ||
+ | tartomany_tipus_azonosító = alsó_korlát .. felső_korlát; | ||
+ | </ | ||
+ | |||
+ | Példa | ||
+ | |||
+ | <code pascal tartomany.pas> | ||
+ | program kartyaszinek; | ||
+ | type | ||
+ | kartya_szin = (tok, makk, piros, zold); | ||
+ | kartya_szin_tartomany = piros .. zold; | ||
+ | var | ||
+ | piros_kartya : kartya_szin_tartomany; | ||
+ | begin | ||
+ | piros_kartya := piros; | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | ===== Halmaz típus ===== | ||
+ | |||
+ | Formátum | ||
+ | |||
+ | <code pascal halmaz.txt> | ||
+ | type | ||
+ | halmaz_azonosito = set of alaptípus; | ||
+ | </ | ||
+ | |||
+ | Példa | ||
+ | |||
+ | <code pascal halmazok.pas> | ||
+ | program halmazok; | ||
+ | type | ||
+ | abc = set of ' | ||
+ | szamok = set of 0..9; | ||
+ | evszak = set of (tavasz, nyar, osz, tel); | ||
+ | var a, b, c : szamok; | ||
+ | begin | ||
+ | {egyesítés} | ||
+ | A := [0, 2, 5, 9]; | ||
+ | B := [1, 2, 4, 6]; | ||
+ | C := A + B; | ||
+ | {eredmény: | ||
+ | C = [ 0, 1, 2, 4, 5, 6, 9]} | ||
+ | | ||
+ | {metszet} | ||
+ | A := [0, 2, 5, 9]; | ||
+ | B := [1, 2, 4, 6]; | ||
+ | C := A * B; | ||
+ | {eredmény: C = [2]} | ||
+ | |||
+ | {különbség} | ||
+ | A := [0, 2, 5, 9]; | ||
+ | B := [1, 2, 4, 6]; | ||
+ | C := A - B; | ||
+ | {eredmény: | ||
+ | C = [0, 5, 9]} | ||
+ | | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Rekord típus ===== | ||
+ | |||
+ | Formátum | ||
+ | |||
+ | <code pascal rekord.txt> | ||
+ | type | ||
+ | rekordtpíus_azonosító = record | ||
+ | mezőnév_1 : adattípus_1; | ||
+ | ... | ||
+ | mezőnév_n : adattípus_n; | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | Rekord mezőhöz való hozzáférés: | ||
+ | |||
+ | <code pascal rekord_hozzafer.txt> | ||
+ | rekordtípus_azonosító.mezőnév_1 | ||
+ | </ | ||
+ | |||
+ | Példa rekordok kezelésére | ||
+ | |||
+ | <code pascal rekord.pas> | ||
+ | program rekord; | ||
+ | type | ||
+ | tanulo_tipus = record | ||
+ | nev : string; | ||
+ | szuletesi_ev : word; | ||
+ | end; | ||
+ | var | ||
+ | tanulo: tanulo_tipus; | ||
+ | begin | ||
+ | tanulo.nev := 'Kelep Elek'; | ||
+ | tanulo.szuletesi_ev := 2000; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | A '' | ||
+ | |||
+ | <code pascal with.txt> | ||
+ | With rekord_változó do | ||
+ | mezőnév_1 := érték_1; | ||
+ | ... | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | Példa a '' | ||
+ | |||
+ | <code pascal with.pas> | ||
+ | With tanulo do | ||
+ | nev := 'Kelep Elek'; | ||
+ | szuletesi_ev := 2000; | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Mutató adattípus ===== | ||
+ | |||
+ | Formátum | ||
+ | |||
+ | <code pascal mutato.txt> | ||
+ | type | ||
+ | mutató_típus = ^adattípus; | ||
+ | </ | ||
+ | |||
+ | Példa | ||
+ | |||
+ | <code pascal mutatok.pas> | ||
+ | program mutatok; | ||
+ | type | ||
+ | egesz_mutato = ^integer; | ||
+ | var | ||
+ | p_egesz: egesz_mutato; | ||
+ | begin | ||
+ | Writeln(' | ||
+ | {Szabad memória: 262080} | ||
+ | |||
+ | {A memória lefoglalása} | ||
+ | New(p_egesz); | ||
+ | Writeln(' | ||
+ | {Szabad memória: 262064} | ||
+ | |||
+ | {Értékadás} | ||
+ | p_egesz^ := 5; | ||
+ | |||
+ | {A memória felszabadítása} | ||
+ | Dispose(p_egesz); | ||
+ | Writeln(' | ||
+ | {Szabad memória: 262080} | ||
+ | Readln; | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | Előre definiált mutató. | ||
+ | |||
+ | <code pascal eloremutato.pas> | ||
+ | type | ||
+ | PLancoltLista = ^LancoltLista; | ||
+ | LancoltLista = record | ||
+ | adat : integer; | ||
+ | next : PLancoltLista; | ||
+ | end; | ||
+ | |||
+ | </ |