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;