Datové typy

Rozdělení datových typů
  • jednoduchý (jeví se jako nedělitelný)
    • ordinální
    • neordinální
  • strukturovaný (složený z dílčích složek)
    • pole
    • záznam
    • množina
    • soubor
    • řetězec

ordinální datové typy(např. char. integer, boolean, výčtový typ)

  • pro každou hodnotu je dán následník a předchůdce
  • Pořadové číslo prvku je dáno ordinální hodnotou prvku
Funkce pro práci s ordinálními typy:
  • Ord zjistí ordinální hodnoty prvku (počítá se od nuly), např ord(1)=1, ord('A')=65
  • Pred vrací hodnotu předcházejícího prvku, např. Pred(1)=0
  • Succ vrací hodnotu následovníka, např. Pred(1)=2
  • High, Low vrací hodnotu nejvyššího a nejnižšího prvku,např High(byte)=255, Low(byte)=0

neordinální datové typy (např. real, string,...)



Typ řetězec - string

deklarace typu

identifikátor:string;
identifikátor:string[cislo]; cislo udává max. délku řetězce
Jednotlivé znaky řetězce jsou přístupné pomocí indexu podobně jako u jednorozměrného pole. V prvku s indexem 0 je uložena skutečná délka řetězce.

Procedury pro práci s řetězci

copy(S.I,K) funkce vrací K znaků z řetězce S počínaje od I-tého znaku.
delete(S,I,K) procedura odstraní K znaků z řetězce S počínaje od I-tého znaku.
Insert(s1,S,I) procedura vkládá řetězec S1 do řetězce S na pozici I -tou
Length(S) funkce, která vrací skutečnou délku řetězce
pos(S1.S) funkce hledá podřetězec S1 v podřetězci S a vrací pozici prvního znaku řetězce S1 v S nebo 0, pokud S1 nenajde.

Typ záznam

skládá se z určitého počtu pojmenovaných složek, které mohou být různého typu a které se nazývají položky záznamu
Položky záznamu zpřístupňujeme pomocí tečkové konvence nebo pomocí příkazu with (viz příklady)

Příklad deklarace

type
  Datum=
    record
     den    :1..31;
     mesic :1..12;
     rok    :integer;
    end;
   Ucastnik=
     record
       prijmeni:string;
       jmeno   :string;
       narozeni:datum;
     end;

var
  termin:datum;
  zavodnik:array [1..200] of ucastnik;

begin
  termin.den:=7;
  termin.mesic:=2;
  zavodnik[1].jmeno:=pepa;
  ...
 with zavodnik[1] do
   begin
     jmeno:='Pepa';
     narozeni.mesic:=7;
     narozeni.den:=2;	
  end;