Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
datove typy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
38.76 Кб
Скачать

3.2.3. Datový typ záznam

Tento datový typ se skládá z určitého počtu položek, které mohou být různého typu. každá položka má přiděleno jméno, neboliidentifikátor položky, pomocí něhož se provádí výběr položky. Na příkladu si ukážeme, jak taková deklarace typu záznam v programu vypadá:

   type 

      Datum = record 

        den: 1.31; 

        mesic: 1..12; 

        rok: 1..2000 

      end

      Informace = record 

        jmenoprijmeniarray[1..15]of charů 

        datum_narozenidatum

        pohlavi: (muzzena); 

        stav: (svobodnyzenatyrozvedenyvdovec

      end

  

   var 

      OsobaInformace

Výše uvedený příklad nám ukazuje, že položky nemusí být jen pevných předdefinovaných typů, ale mohou být i námi definovaných typů. Příkladem je položka datum_narození, která je sama datový typ záznam, který jsme definovali výše.

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 

      jmenoprijmeniarray[1..15]of char

      datum_narozenidatum

      case pohlavi: (muzzenaof 

           muz: (vahareal

                    vousyboolean); 

           zena: (miryarray[1..3]of integer

    end

3.2.4. Datový typ množina

Tento datový typ je složen z ordinálních typů. Každý takový typ určuje typ prvků dané množiny a nazývá se bázový typ. Deklarace vypadá takto:

   type  

      mnozina_znaku = set of char

Jestliže datový typ char označuje celkem n různých znaků, pak typ mnozina_znaku označuje množinu znaků, kterou tvoří všechny podmnožiny množiny znaků typu char. Bázový typ nesmí mít více než 256 možných hodnot a ordinální hodnoty nejnižšího a nejvyššího prvku musí být v rozsahu 0..255. Každý množinový typ zahrnuje také prázdnou množinu. Množinové a relační operace jsou:

+

sjednocení dvou množin

-

rozdíl jedné množiny od druhé

*

průnik dvou množin

=

rovnost dvou množin

<>

nerovnost dvou množin

<=

"je podmnožinou"

>=

"obsahuje"

Operandy mohou být pouze množiny s kompatibilními bázovými prvky. Typ výsledku operací +*, a - je dán typem operandů, typ výsledků relačních operátorů je Boolean.

Příklad:

   type  

      barva = (cervenazelenamodrazlutahneda); 

      odstin = set of barva

  

   var 

      odstin1, odstin2odstin

Dále u tohoto typu můžeme testovat přítomnost určitého prvku v množině, a to pomocí operátoru in. Tento operátor vrací hodnotu TRUE, pokud hledaný prvek se v množině nachází, jinak vrací operátor hodnotu FALSE. A opět příklad:

   cervena in odstin1 + odstin2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]