<< String | Datové typy | Množina >>

Datový typ RECORD - ZÁZNAM

Vlastnosti

  • datový typ se skládá z určitého počtu položek
  • datové položky mohou být různého typu
  • každá položka má přiděleno jméno - identifikátor položky

Deklarace

Pomocí uživatelského datového typu

  type Datum = record                      //uživatelský typ Datum
               begin
                den   : 1..31;
                mesic : 1..12;
                rok   : 1..2000
              end;
     Informace = record                    //uživatelský typ Informace
                   begin
                     jmeno   : string [15];
                     prijmeni: string [15];
                     datum_narozeni: datum;
                     pohlavi : (muz, zena);
                     stav    : (svobodny, zenaty, rozvedeny, vdovec)
                  end;

  var Osoba : Array [1..100] of Informace; //deklarace proměnné Osoba
  • uživatelsky definovaný datový typ Informace využívá uživatelsky definovaný typ Datum
  • proměnná Osoba je připravena pro uložení pole 100 záznamů typu Informace

Zpřístupnění položky proměnné typu záznam má na starosti tzv. selektor záznamu a má tvar:

: proměnná_typu_záznam.identifikátor položky

vzhledem k našemu příkladu:

Osoba.jmeno;
Osoba.datum_narozeni.mesic;

atd.

V případech, kdy v určité části programu pracujeme s položkami téhož záznamu, přichází nám vhod příkaz with, který nám usnadňuje přístup k jednotlivým položkám. V praxi tento příkaz pracuje takto:

with Osoba do
begin
jmeno := 'David';
prijmeni := 'Padrta';
with datum_narozeni do
begin
den := 11;
mesic := 2;
rok := 1975
end;
pohlavi := muz;
stav := svobodny
end;

Tak, to byly záznamy. Pokud navíc provedeme malou obměnu této datové struktury, získáme tzv. VARIANTNÍ ZÁZNAMY. Jsou to takové záznamy, které mají ve své struktuře navíc ještě variantní část. Někdy se totiž stane, že definujeme takové typy, které jsou pouze různé varianty téhož typu, a proto je lze napsat do variantní části. Typy, specifikující několik variant záznamu, se nazývají typy variantních záznamů. Samozřejmě nesmí chybět příklad:

type Informace = record
jmeno, prijmeni: array[1..15]of char;
datum_narozeni: datum;
case pohlavi: (muz, zena) of
muz: (vaha: real;
vousy: boolean);
zena: (miry: array[1..3]of integer)
end;
RSS