Az állandók deklarálás a const
szakaszban történik.
const azonosító = érték;
Példa.
const pi = 3.14; avogadro = 6.022E23; ev = 2017; nev = 'Marci'; megfelelt = true;
Típusos állandók
const r : real = 20;
A változók deklarálás a var
szakaszban történik.
var azonosító : adattípus;
A Pascal alapvető elemi típusai:
integer
- egész: -32768-től 32767-igreal
- valós: 3.4×10-38-tól 3.4×1038-igchar
- karakter: pl. 'a'
, ' '
, '+'
, '#9'
, '#$10'
stb.boolean
- logikai: true
(igaz) vagy false
(hamis)
A szöveges adattípusokat karakterláncokban tárolják, úgynevezett string
típusban, melynek hossz maximum 255 karakter lehet.
Példa
var ev, ho, jegy : integer; trulet : real; betu : char; leadva : boolean; keresznev : string;
Egyéb FreePascal szöveges adattípusok:
WideChar
- két byte-os, azaz unicode vagy UTF-16 kódolású karakterPChar
- null-karakter ( '#0'
) végződésű karakterláncShortString
- maximum 255 karakter hosszúságú karakterláncAnsiString
- ennek a karakterlánc-típusnak a hossza nincs korlátozvaWidestrings
- unicode vagy UTF-16 kódolású karaktereket tároló karakterláncEgész típusok a FreePascal-ban
Típus | Értékhalmaz | Tárfoglalás bájtokban |
---|---|---|
Byte | 0 .. 255 | 1 |
Shortint | -128 .. 127 | 1 |
Smallint | -32768 .. 32767 | 2 |
Word | 0 .. 65535 | 2 |
Integer | smallint vagy longint | 2 vagy 4 |
Cardinal | longword | 4 |
Longint | -2147483648 .. 2147483647 | 4 |
Longword | 0 .. 4294967295 | 4 |
Int64 | -9223372036854775808 .. 9223372036854775807 | 8 |
QWord | 0 .. 18446744073709551615 8 |
Valós típusok a FreePascal-ban
Típus | Értékhalmaz | Értékes jegyek | Tárfoglalás bájtokban |
---|---|---|---|
Real | platformfüggő | ??? | 4 vagy 8 |
Single | 1.5E-45 .. 3.4E38 | 7-8 | 4 |
Double | 5.0E-324 .. 1.7E308 | 15-16 | 8 |
Extended | 1.9E-4932 .. 1.1E4932 | 19-20 | 10 |
Comp | -2E64+1 .. 2E63-1 | 19-20 | 8 |
Currency | -922337203685477.5808 .. 922337203685477.5807 | 8 |
type adattípus_azonosító = típus_specifikáció;
Formátum
type adattípus_azonosító = (azonosító_1, azonosító_2, ... , azonosító_n);
Példa
program kartyazas; type kartya_szin = (tok, makk, piros, zold); var piros_kartya : kartya_szin; begin piros_kartya := piros; end.
Formátum
type tartomany_tipus_azonosító = alsó_korlát .. felső_korlát;
Példa
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.
Formátum
type halmaz_azonosito = set of alaptípus;
Példa
program halmazok; type abc = set of 'a'..'z'; 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.
Formátum
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:
rekordtípus_azonosító.mezőnév_1
Példa rekordok kezelésére
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 With
parancs segít leegyszerűsíteni a rekord mezőihez való hozzáférést.
With rekord_változó do mezőnév_1 := érték_1; ... end;
Példa a With
parancs használatára
With tanulo do nev := 'Kelep Elek'; szuletesi_ev := 2000; end;
Formátum
type mutató_típus = ^adattípus;
Példa
program mutatok; type egesz_mutato = ^integer; var p_egesz: egesz_mutato; begin Writeln('A lefoglalas elott: ',memavail); {Szabad memória: 262080} {A memória lefoglalása} New(p_egesz); Writeln('A lefoglalas utan: ',memavail); {Szabad memória: 262064} {Értékadás} p_egesz^ := 5; {A memória felszabadítása} Dispose(p_egesz); Writeln('A felszabaditas utan: ',memavail); {Szabad memória: 262080} Readln; end.
Előre definiált mutató.
type PLancoltLista = ^LancoltLista; LancoltLista = record adat : integer; next : PLancoltLista; end;