Difference between revisions of "Record/hu"

From Free Pascal wiki
Jump to navigationJump to search
(magyar nyelvű oldal létrehozása)
(No difference)

Revision as of 16:41, 21 May 2011

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:

<delphi>

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;

</delphi>

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

<delphi>

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

</delphi>

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

<delphi>

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

</delphi>

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

<delphi>

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

</delphi>

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

<delphi>

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

</delphi>

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