Datové typy a struktury Informatika I 9/datové struktury Datové typy a struktury Typy dat Datové objekty - konstanty, proměnné, funkce jsou určitého typu typ je množina hodnot, kterých může proměnná nabýt, které funkce generuje…..atd. typ bývá v programu deklarován (deklarace) s každým typem souvisí určité operace, které jsou pro tento typ definovány stejné operace se provádějí různými algoritmy, např. sčítání celých a reálných čísel Ing. Ivana Hesova, KIT ČZU
Jednoduché typy dat Jednoduché typy dat integer (celá čísla, 2 nebo 4 byty) real (čísla uložená v pohyblivé řádové čárce, 4 nebo 8 bytů, 8 je tzv. dvojnásobná přesnost, double precision) boolean (logické hodnoty, typ ano/ne, nebo pravda/nepravda) char (jednoznakové proměnné) string (textové řetězce, 1 znak - 1byte)
Jednoduché typy dat Příklad na uložení max. a min. hodnoty typu Integer na dva byty (krátké celé číslo) max. kladné číslo by bylo 1111 1111 1111 1111 hexadecimálně: FFFF Převod z dvojkové do desítkové soustavy: 1x215+1x214+1x213+……....+1x21+1x20= =65535 Převod z hexadecimální soustavy - FFFF: 15x163+15x162+15x161+15x160 = 65535 v příkladu zatím neuvažujeme znaménko čísla
Jednoduché typy dat zobrazení celých záporných hodnot - 2 byty 1. první bit použit na znaménko 2. kód s posunutou nulou 3. doplňkový kód
Datové typy, hodnoty typu Integer 1. první bit = znaménko + 0 111 1111 1111 1111 zbývající bity - 1 max. kladné číslo, které lze pomocí nich vyjádřit je: +32767 max. záporné číslo je - 32767 (1x214+1x213+……....+1x21+1x20 ) 16384+8192+4096+2048+1024+512+256+128+64+ 32+16+8+4+2+1 = 32767
Datové typy, hodnoty typu Integer 2. kód s posunutou nulou 0000 0000 0000 0000 …... 0 (minimum) …atd… 0111 1111 1111 1111 32767 1000 0000 0000 0000 32768 (=215) = posunutá nula 0 1111 1111 1111 1111 65535 (max.) max. číslo, které lze odečíst od 32768 = -32768 max. číslo >0, které lze přičíst do 65535 = 32767
Datové typy, hodnoty typu Integer 3. doplňkový kód kladná čísla jsou v přímém kódu až do 0111 1111 1111 1111, tj. max. kladná hodnota = 32767 záporná se odečítají od maxima, až k 1000 0000 0000 0000, tj. max. záporná hodnota = -32768 65535 - 32768 = 32767
Datové typy, hodnoty typu Real Čísla typu Real, plovoucí řádová čárka, 4 byty číslo tvoří mantisa a exponent mantisa = 6 hexadecimálních znaků, tj. dekadicky max. 7 číslic exponent v kódu s posunutou nulou znaménko čísla je první bit prvního bytu větší počet číslic mantisy lze uložit na dvojnásobné délce slova, tj. pomocí 8 bytů = dvojnásobná přesnost (double precision)
Datové typy, hodnoty typu Real .12345E+9 .12345 x 109 .12345E-4 .12345 x 10-4
Datové typy a struktury Strukturované typy dat - charakteristiky: typ struktury - homogenní - tvoří ji stejný typ prvků heterogenní - prvky jsou různého typu označení struktury - A(I,J) prvek dvourozm. pole typ prvků (jednoduché, strukturované) operace s prvky uspořádání prvků - statické - nemění se počet prvků struktury
Datové typy a struktury dynamické - počet prvků struktury se mění při práci se strukturovanými typy dat se abstrahuje od toho jak jsou data fyzicky uložena, proto je též nazýváme abstraktní datové typy
Datové typy a struktury Standardní strukturované typy dat pole (homogenní, statická struktura) záznam (heterogenní, statická struktura) množina (homogenní, statická struktura) soubor (homogenní, dynamická struktura) Pole jednorozměrné (vektor) A(5) označení prvku vektoru, index = pořadové číslo dvourozměrné (matice), 2 indexy vícerozměrné (3 rozm., kubická matice)
Datové typy a struktury záznam - angl. record, věta např. řádek databázové tabulky, složený z řady údajů různého typu, proto heterogenní nebo prvek souboru soubor tvoří záznamy
Datové typy a struktury Abstraktní strukturované typy dat lineární seznam zásobník, LIFO (Last In First Out) fronta, FIFO (First In First Out) jsou homogenní, dynamické nelineární tabulka (homogenní, dynamická) graf (orientovaný, neorientovaný)
Datové typy a struktury Abstraktní strukturované typy dat implementace často pomocí pole tabulky se používají v relačním databázovém modelu nevýhoda: strukturovaný pohled na data dnes jsou větší nároky na uložení nestrukturovaných dat (text, grafika, zvuk - MM) řeší se to použitím BLOBs (Binary Large Objects -velké binární objekty)) problém je manipulace nad nimi