Record/hu

From Lazarus wiki
Revision as of 15:54, 24 March 2012 by Vincent (talk | contribs) (Text replace - "delphi>" to "syntaxhighlight>")
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) polski (pl) português (pt) русский (ru)


Rekord


A rekord (record) típus egy magasan szervezett adatszerkezet Pascal-ban.

Míg az egyszerű adatszerkezetek, mint a 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.

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.

Lássuk a telefonkönyves példánkat a gyakorlatban:

 type
   TCim = record
     iranyitoSzam, hazSzam: Integer;  { Irányító- és házszám mezők. }
     varos, utca: String;             { Város- és utcanév mezők. }
   end;
   
   TSzemely = record
     csaladNev, keresztNev : String;  { A személy családnevét, és keresztnevét tartalmazó mezők. }
     cim: TCim;                       { A személy címét tartalmazó mező - szintén rekord. }
     telefonSzam: Integer;            { A telefonszámot tartalmazó mező. }
   end;

Minden egyes mezőt a rekordnév utáni pont operátorral érhetünk el:

  a.csaladNev := 'Kovacs';
  a.keresztNev := 'Istvan';
  a.telefonSzam := 789534;

A pont operátor használatával mélyebb szintekre is eljuthatunk a rekordban, például a cím megadásánál:

  a.cim.iranyitoSzam := 1234;
  a.cim.varos := 'Peldavaros';
  a.cim.utca := 'Kossuth Lajos utca';
  a.cim.hazSzam := 56;

Egy másik módszer, amely leegyszerűsíti a mezők értékadását, a with szerkezet használata:

 with a do
   begin
     csaladNev := 'Kovacs';
     keresztNev := 'Istvan';
     telefonSzam := 789534;
   end;

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ú:

 var
   a, b: TSzemely;
 begin
   { értékmegadások az 'a' rekordhoz }
   ...
   ...
   b := a;
 end;

A rekordokat széleskörűen használják a Pascal-ban logikailag összefüggő adatok csoportosítására.