Difference between revisions of "Record/hu"

From Lazarus wiki
Jump to navigationJump to search
(magyar nyelvű oldal létrehozása)
 
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 13: Line 13:
 
Lássuk a telefonkönyves példánkat a gyakorlatban:
 
Lássuk a telefonkönyves példánkat a gyakorlatban:
  
<delphi>
+
<syntaxhighlight>
 
  type
 
  type
 
   TCim = record
 
   TCim = record
Line 25: Line 25:
 
     telefonSzam: Integer;            { A telefonszámot tartalmazó mező. }
 
     telefonSzam: Integer;            { A telefonszámot tartalmazó mező. }
 
   end;
 
   end;
</delphi>
+
</syntaxhighlight>
  
 
Minden egyes mezőt a rekordnév utáni pont operátorral érhetünk el:
 
Minden egyes mezőt a rekordnév utáni pont operátorral érhetünk el:
  
<delphi>
+
<syntaxhighlight>
 
   a.csaladNev := 'Kovacs';
 
   a.csaladNev := 'Kovacs';
 
   a.keresztNev := 'Istvan';
 
   a.keresztNev := 'Istvan';
 
   a.telefonSzam := 789534;
 
   a.telefonSzam := 789534;
</delphi>
+
</syntaxhighlight>
  
 
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 pont operátor használatával mélyebb szintekre is eljuthatunk a rekordban, például a cím megadásánál:
  
<delphi>
+
<syntaxhighlight>
 
   a.cim.iranyitoSzam := 1234;
 
   a.cim.iranyitoSzam := 1234;
 
   a.cim.varos := 'Peldavaros';
 
   a.cim.varos := 'Peldavaros';
 
   a.cim.utca := 'Kossuth Lajos utca';
 
   a.cim.utca := 'Kossuth Lajos utca';
 
   a.cim.hazSzam := 56;
 
   a.cim.hazSzam := 56;
</delphi>
+
</syntaxhighlight>
  
 
Egy másik módszer, amely leegyszerűsíti a mezők értékadását, a [[With|with]] szerkezet használata:
 
Egy másik módszer, amely leegyszerűsíti a mezők értékadását, a [[With|with]] szerkezet használata:
  
<delphi>
+
<syntaxhighlight>
 
  with a do
 
  with a do
 
   begin
 
   begin
Line 53: Line 53:
 
     telefonSzam := 789534;
 
     telefonSzam := 789534;
 
   end;
 
   end;
</delphi>
+
</syntaxhighlight>
  
 
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ú:
 
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>
+
<syntaxhighlight>
 
  var
 
  var
 
   a, b: TSzemely;
 
   a, b: TSzemely;
Line 66: Line 66:
 
   b := a;
 
   b := a;
 
  end;
 
  end;
</delphi>
+
</syntaxhighlight>
  
 
A rekordokat széleskörűen használják a Pascal-ban logikailag összefüggő adatok csoportosítására.
 
A rekordokat széleskörűen használják a Pascal-ban logikailag összefüggő adatok csoportosítására.

Revision as of 14:54, 24 March 2012

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.