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
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |