The English encyclopedia Allmultimedia.org will be launched in two phases.
The final launch of the Allmultimedia.org will take place on February 24, 2026
(shortly after the 2026 Winter Olympics).

Datový typ

Z Multimediaexpo.cz

Datový typ definuje v programování druh proměnných (a konstant). Je určen oborem hodnot a zároveň výpočetními operacemi, které lze s daty provádět (srovnej abstraktní datový typ). Datový typ nemůže být určen pouze oborem hodnot, protože existují i datové typy, které se liší pouze v operacích nad těmito typy. Téměř každý programovací jazyk má některé datové typy předdefinované. Pomocí nich může programátor tvořit typy nové (abstraktní datové typy).

Obsah

Prázdný datový typ

  • void – nenabývá žádných hodnot (deklarace funkce, která nemá návratovou hodnotu) nebo označuje data nespecifikovaného typu (ukazatel typu void v jazyce C)

Jednoduché datové typy

Nemají vnitřní strukturu. Složitější typy jsou ve skutečnosti složeny z těchto základních.

  • logická hodnota (boolean) – true nebo false (také 1 nebo 0)
  • celé číslo (integer) – např. 256, 1, 0, -65535, 0xA9 (tzv. hexadecimální zápis), …
  • znak (char) – např. 'a', 'A', 'g', ' ', '5', '%', …

Tyto typy jsou ordinální – hodnoty tohoto typu tvoří lineárně uspořádanou množinu, kde pro každý prvek je přesně definovaný předchůdce i následovník (z posledního prvku dojde k tzv. přetečení na první).

  • reálné číslo, číslo s plovoucí řádovou čárkou (float, real) – 3.14, 0.5 (podle anglosaské konvence zapsané s desetinnou tečkou)

Strukturovaný datový typ

Datový typ obsahuje jeden nebo více prvků. Říkáme, že je homogenní, jsou-li prvky stejného typu.

  • pole (array) – [21, -5, 11], může být vícerozměrné (např. dvourozměrné označujeme jako matici),
  • textový řetězec (string) – „Ahoj“, " ", „loopback 127.0.0.1“,
  • výčtový typ (enum) – programátorem definovaný typ, např. pro barvu karet:
 enum barva {
   piky,
   srdce,
   kary,
   krize
 };

Jednotlivé prvky strukturovaného typu jsou dostupné pod číslem, které určuje jejich pořadí (tzv. index), obvykle počítáno od 0. Pro výše uvedené příklady: pole[1] = -5, retezec[0] = 'A' (resp. ' ' a 'l'), obdobně pro výčtový typ.

Heterogenní datový typ

Datový typ je složen z prvků různých datových typů (opak homogenního) a navenek se chová jako kompaktní celek. Např. v jazyku Pascal typ record nebo v jazyku C typ struct:

 typedef struct {
    int vek;
    char *jmeno;
    enum { muz, zena } pohlavi;
 } Osoba;
  • seznam (list) – obdoba pole, ['a', 'b', 9, „cokoliv?“]

Zvláštní datové typy

  • ukazatel (pointer) – ukazuje na místo v paměti (např. na jinou proměnnou nebo na určitý prvek pole)
  • soubor (file) – reprezentuje (ukazatel na) soubor (ať už uložený na pevném disku či virtuální)
  • komplexní číslo – např. v jazyku Python: (2+4j)

Generický datový typ

Datový typ, který je možné parametrizovat jiným typem. V jazyce Pascal to může být např. typ pole s parametrem a jaké prvky budou v poli uloženy (např. array of char). Mnohem větší možnosti, jak parametrizovat typy, poskytuje systém šablon v C++ nebo generické typy uvedené v jazycích Java 5, či C# 2.0.

Rozsah datového typu

V paměti počítače jsou všechna data reprezentována posloupností 1 a 0 (dvojková soustava). Počet míst (bitů) vyhrazených pro daný datový typ omezuje rozsah hodnot, kterých může nabýt. Existuje tak např. několik datových typů pro celé číslo (liší se podle jazyka, v tabulce jsou uvedeny obvyklé hodnoty):

Datový typ Velikost v paměti Rozsah
Celočíselné typy
Boolean 1 bit (ačkoliv obvykle uložen jako 1 bajt) 0 až 1
Byte 8 bitů (= 1 bajt) 0 až 255
Word 2 bajty 0 až 65 535
Double Word 4 bajty 0 až 4 294 967 295
Integer 4 bajty –2 147 483 648 až 2 147 483 647
Double Integer 8 bajtů –9 223 372 036 854 775 808 až 9 223 372 036 854 775 807
Typy s plovoucí čárkou
Real 4 bajty 1E-37 až 1E+37 (6 desetinných míst)
Double Float 8 bajtů 1E-307 až 1E+308 (15 desetinných míst)

Některé jazyky nevyžadují deklaraci délky proměnné a dynamicky (za běhu programu) přiřazují další paměť, je-li to potřeba. Programátor např. může spojovat řetězce nebo přidávat další prvky do pole bez omezení.

Typová signatura

Signatura jednoduchého datového typu Bool a operací (funkcí) na něm by se dala symbolicky zapsat: Druhy dat:

  • Bool

Operace:

  • true, false : Bool
  • not : Bool → Bool
  • and : Bool, Bool → Bool
  • eq : Bool, Bool → Bool

Související články