Dátový typ

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

Dátový typ je spojenie oblastí hodnôt a operácií v jeden celok.

Rozdelenie dátových typov

  • abstraktné dátové typy - sú typy, ktoré kladú dôraz na vlastnosti operácií a oblasti hodnôt
  • konkrétne dátové typy - sú typy použité v konkrétnom programovacom jazyku
  • dátové štruktúry - sú typy, pri ktorých operácie týkajúce sa len na konštruovanie oblastí hodnôt

Abstraktné dátové typy

Abstraktný dátový typ (ADT) je v informatike výraz pre typy dát, ktoré sú nezávislé na vlastnej implementácii. Hlavným cieľom je zjednodušiť a sprehľadniť program, ktorý robí operácie s daným dátovým typom. Je výhodné popisovať algoritmy a dátové štruktúry len podľa operácií, ktoré nám umožňujú vykonávať, ako podľa detailov ich implementácie.

Keď dátovú štruktúru popisujeme podľa operácií, ktoré má byť schopná vykonávať, voláme je Abstraktný dátový typ.

Abstraktná dátová štruktúra

Abstraktná dátová štruktúra je spôsob, ako efektívne uložiť dáta tak, aby práca s nimi bola relatívne jednoduchá. Je to abstraktný sklad pre dáta definované v rámci množiny operácií a pre výpočtové zložitosti pri vykonávaní týchto operácií, bez ohľadu na implementáciu v konkrétnej datovej štruktúre.

Výber abstraktnej dátovej štruktúry je rozhodujúci pre návrh algoritmov a pre odhad ich zložitosti, zatiaľ čo výber konkrétnych dátových štruktúr je dôležitý pre účinnú implementáciu týchto algoritmov.

Vlastnosti abstraktného dátového typu

Nedôležitejšie vlastnosti abstraktného typu dát sú:

  • Všeobecnosť implementácie: raz navrhnutý ADT môže byť zabudovaný a bez problémov používaný v akomkoľvek programe.
  • Presný popis: prepojenie medzi implementáciou a rozhraním musí byť jednoznačné a úplné.
  • Jednoduchosť: pri používaní sa používateľ nemusí starať o vnútornú realizáciu a správu ADT v pamäti.
  • Zapúzdrenie: rozhranie by malo byť pojaté ako uzavretá časť. Používateľ by mal vedieť presne čo ADT robí, ale nie ako to robí.
  • Integrita: používateľ nemôže zasahovať do vnútornej štruktúry dát. Tým sa výrazne zníži riziko nechceného zmazania alebo zmena už uložených dát.
  • Modularita: „stavebnicový“ princíp programovania je prehľadný a umožňuje jednoduchú výmenu časti kódu. Pri hľadaní chýb môžu byť jednotlivé moduly považované za kompaktné celky. Pri zlepšovaní ADT nie je nutné zasahovať do celého programu.

Ak sú ADT implementované objektovo, je väčšina týchto predpokladov splnená.

Konkrétne dátové typy

Konkrétne dátové typy sa v programovacých jazykoch používajú na deklaráciu premenných. Vo väčšine programovacích jazykoch sa dajú použiť tieto dátové typy:

Boolean (alebo bool)

je implementáciou pravdivostného typu. Môže obsahovať dve možné hodnoty True (Pravda) a False (Nepravda), ktorým tiež prislúcha určitý rozsah číselných hodnôt. V jazyku C je hodnota false reprezentovaná hodnotou 0 a true všetkými hodnotami rôznymi od 0.

Byte (alebo char či unsigned char)

je prirodzené číslo v rozsahu 0 až 255. Tento typ sa často používa na reprezentáciu znakov tabuľky ASCII. Operácie dovolené s týmto typom sú sčítanie, odčítanie, násobenie, delenie a ďalšie ktoré sa môžu líšiť od programovacieho jazyka.

Integer (alebo int)

je typ pre reprezentáciu celých čísel má však ohraničený rozsah možných hodnôt. Tento rozsah môže byť iný v každom programovacom jazyku. V jazyku C má rozsah (16 bit) od -2147483648 do 2147483647

Reálny typ (float či double)

je typ určený pre uchovávanie desatinných čísel.

Reťazec (String alebo pole znakov)

je typ, ktorý je určený na uchovanie „reťazcov“ čiže textových hodnôt.

Dátové štruktúry

Dátové štruktúry pozostávajú zo základných dátových typov, ktoré sú usporiadané podľa určitých pravidiel. Medzi základné dátové štruktúry patria

  • Pole
    • Slúži na reprezentáciu polí rôznych typov: celočíselné, znakové reťazcové pole. Ale aj pole štruktúr. Pri viacrozmerných poliach môžeme reprezentavať napr. matice (2-rozmerné polia).
  • Dátový typ štruktúra
    • Slúžia na reprezentáciu štruktúrovaných údajov. Ako príklad uvedieme:
      • bod v rovine - je reprezentovaný dvoma súradnicami (reálne čísla)
      • komplexné číslo - je reprezentovaný dvoma hodnotami (reálna a komplexná časť)
      • Zásobník (pamäť LIFO) - je reprezentovaný dátovou štruktúrou pre ukladanie položiek do pamäti, veľkosťou tejto pamäti a ukazateľom aktuálnej pozície zaplnenia.
      • Fronta (pamäť FIFO) - je reprezentovaný dátovou štruktúrou pre ukladanie položiek do pamäti, veľkosťou tejto pamäti a ukazateľom začiatočnej a konečnej pozície údajov v pamäti.
      • Zoznam - Dynamická dátová štruktúra. Zoznam prvkov podobný poľu s tým rozdielom že k prvkom zoznamu sa dostaneme len cez jeho susedov.
      • Množina
      • Strom - Dynamická dátová štruktúra.
      • Hromada - Dynamická dátová štruktúra.
      • Prioritná fronta
  • Vymenovaný typ (enum)

Odkazy