Sign in Join
Wiki copytemporary

Record/hu: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Record/hu

OldNewLine
1+# Rekord
2+
3+A rekord (*record*) [[Type|típus]] egy magasan szervezett adatszerkezet [[Pascal]]-ban.
4+
5+Míg az egyszerű adatszerkezetek, mint a [[Array|tömb]], vagy a set, egyforma típusú elemekből állnak, addig a rekord többfajta elemből állhat, és nagy bonyolultságú lehet. A rekord egyes részeit mezőknek nevezzük.
6+
7+Egy rekordnak tekinthető például a való életben a telefonkönyv névjegyzékének egy eleme. Ebben az esetben egy adott rekord egy ember nevét, címét, telefonszámát tartalmazza. Már itt jól látható, hogy különböző típusú mezők vannak felhasználva: a név String típusú, a telefonszám Integer típusú, a cím pedig lehet String vagy szintén rekord típusú - ebben az esetben a címet tovább finomíthatjuk irányítószám, utca, házszám, lépcsőház, stb. formában.
8+
9+Lássuk a telefonkönyves példánkat a gyakorlatban:
10+
11+``` pascal
12+ type
13+ TCim = record
14+ iranyitoSzam, hazSzam: Integer; { Irányító- és házszám mezők. }
15+ varos, utca: String; { Város- és utcanév mezők. }
16+ end;
17+
18+ TSzemely = record
19+ csaladNev, keresztNev : String; { A személy családnevét, és keresztnevét tartalmazó mezők. }
20+ cim: TCim; { A személy címét tartalmazó mező - szintén rekord. }
21+ telefonSzam: Integer; { A telefonszámot tartalmazó mező. }
22+ end;
23+```
24+
25+Minden egyes mezőt a rekordnév utáni pont operátorral érhetünk el:
26+
27+``` pascal
28+ a.csaladNev := 'Kovacs';
29+ a.keresztNev := 'Istvan';
30+ a.telefonSzam := 789534;
31+```
32+
33+A pont operátor használatával mélyebb szintekre is eljuthatunk a rekordban, például a cím megadásánál:
34+
35+``` pascal
36+ a.cim.iranyitoSzam := 1234;
37+ a.cim.varos := 'Peldavaros';
38+ a.cim.utca := 'Kossuth Lajos utca';
39+ a.cim.hazSzam := 56;
40+```
41+
42+Egy másik módszer, amely leegyszerűsíti a mezők értékadását, a [[With|with]] szerkezet használata:
43+
44+``` pascal
45+ with a do
46+ begin
47+ csaladNev := 'Kovacs';
48+ keresztNev := 'Istvan';
49+ telefonSzam := 789534;
50+ end;
51+```
52+
53+A rekordot a program egy önálló entitásként kezeli, ezért a rekordok másolhatók - feltéve, hogy a két változó azonos típusú:
54+
55+``` pascal
56+ var
57+ a, b: TSzemely;
58+ begin
59+ { értékmegadások az 'a' rekordhoz }
60+ ...
61+ ...
62+ b := a;
63+ end;
64+```
65+
66+A rekordokat széleskörűen használják a Pascal-ban logikailag összefüggő adatok csoportosítására.
67+
68+---
69+*From the Free Pascal wiki, page "Record/hu", as it stood on 2020-02-25 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history