Uživatelské nástroje

Nástroje pro tento web


informatika:maturita:20a

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
informatika:maturita:20a [15. 03. 2020, 20.07] – [Datové typy strukurovaných jazyků] xdostalinformatika:maturita:20a [27. 05. 2020, 15.35] (aktuální) – [Složené typy:] xdostal
Řádek 5: Řádek 5:
 ===== Jednoduché datové typy:===== ===== Jednoduché datové typy:=====
  
-Jednoduché (také elementární) datové typy jsou většinou definované přímo jazykem, jsou do něj zabudované, můžeme je dělit na ordinální a reálné.+Jednoduché (také elementární) datové typy jsou většinou definované přímo jazykem, jsou do něj zabudované, můžeme je dělit na ordinální a neordinální.
  
 ==== Ordinální typy ==== ==== Ordinální typy ====
Řádek 20: Řádek 20:
   * //long// = ještě více než int   * //long// = ještě více než int
  
-**Char** - neboli znak = jednotka informace, která zpravidla odpovídá jednomu znaku v psané formě přirozeného jazyka. Tedy jednomu písmenku, číslici, symbolu, interpunkci,... např. 'a', 'A', 'g', ' ', '5', '%'.+**Char** - neboli znak = jednotka informace, která zpravidla odpovídá jednomu znaku v psané formě přirozeného jazyka. Tedy jednomu písmenku, číslici, symbolu, interpunkci,... např. 'a', 'A', 'g', ' ', '5', '%'. Má velikost 1 byte.
  
 **Výčtový typ** - jedná se o datový typ definovaný uživatelem - může nabývat hodnot ze specifikované konečné množiny. Např. měsíce v roce (leden, únor...), dny v týdnu (pondělí, úterý...) **Výčtový typ** - jedná se o datový typ definovaný uživatelem - může nabývat hodnot ze specifikované konečné množiny. Např. měsíce v roce (leden, únor...), dny v týdnu (pondělí, úterý...)
Řádek 26: Řádek 26:
 v C ho definujeme takto:  v C ho definujeme takto: 
  
-typedef enum { +  typedef enum { 
-  PRAHA, BRNO, OSTRAVA +    PRAHA, BRNO, OSTRAVA 
-} MESTA;+  } MESTA; 
 +   
 +  MESTA m = BRNO; 
 +  m == 1  //pravda
  
  
Řádek 35: Řádek 38:
 U neordinálních datových typů není jednoznačně určen předchůdce a následovník každé hodnoty. U neordinálních datových typů není jednoznačně určen předchůdce a následovník každé hodnoty.
  
-**Double, float, real** - reálné číslo nebo také číslo s plovoucí desetinnou čárkou, např. '1.58' nebo '0.0045'. V počítači je většinou reprezentováno jako //celé číslo * 2<sup>exponent</sup>// kde exponent je také celé čislo. Mnohá desetinná čísla nelze v tomto formátu přesně reprezentovat. Např. číslo 0,1 má periodický dvojkový zápis (0,0001100)<sub>2</sub>. Důsledkem je, že reálná čísla můžou v počítači vypadat a chovat se trochu jinak.+**Double, float** - reálné číslo nebo také číslo s plovoucí desetinnou čárkou, např. '1.58' nebo '0.0045'. V počítači je většinou reprezentováno jako //celé číslo * 2<sup>exponent</sup>// kde exponent je také celé čislo. Mnohá desetinná čísla nelze v tomto formátu přesně reprezentovat. Např. číslo 0,1 má periodický dvojkový zápis (0,0001100)<sub>2</sub>. Důsledkem je, že reálná čísla můžou v počítači vypadat a chovat se trochu jinak.
  
 V jazyce C existují tyto konkrétní typy:  V jazyce C existují tyto konkrétní typy: 
Řádek 56: Řádek 59:
  
 **Seznam - list** - obdoba pole. Na rozdíl od pole nelze seznam přímo adresovat pomocí indexu. Seznam je tedy možné procházet pouze postupně, od začátku do konce, sekvenčně. Existují i obousměrné spojové seznamy, které je možné procházet od začátku i od konce, avšak omezení přístupu je výrazné. Výhodou seznamů proti polím je, že je možné snadno přidávat nebo odebírat i prvky nacházející se uprostřed seznamu. **Seznam - list** - obdoba pole. Na rozdíl od pole nelze seznam přímo adresovat pomocí indexu. Seznam je tedy možné procházet pouze postupně, od začátku do konce, sekvenčně. Existují i obousměrné spojové seznamy, které je možné procházet od začátku i od konce, avšak omezení přístupu je výrazné. Výhodou seznamů proti polím je, že je možné snadno přidávat nebo odebírat i prvky nacházející se uprostřed seznamu.
 +
 +**Množina - set** - obsahuje unikátní, neopakující se hodnoty bez stanoveného pořadí. Výhodou je možnost kontroly, zda li prvek náleží množině nebo ne.
  
 **Struktura - struct** - datový typ složený z jiných datových typů/složený z různých typů proměnných. Jedná se tedy o heterogenní datový typ. Nejlépe je pochopitelný přímo z ukázky deklarace v jazyce C: **Struktura - struct** - datový typ složený z jiných datových typů/složený z různých typů proměnných. Jedná se tedy o heterogenní datový typ. Nejlépe je pochopitelný přímo z ukázky deklarace v jazyce C:
  
-struct account { +  struct account { 
-   int account_number; +    int account_number; 
-   char *first_name; +    char *first_name; 
-   char *last_name; +    char *last_name; 
-   float balance; +    float balance; 
-};+  };
  
-Když teď vytvoříme nový struct: 'struct account accountExample;' vytvoříme v podstatě "balíček" výše deklarovaných proměnných, account_number tohoto konkrétního structu poté získáme např. 'accountExample.account_number ...'+Když teď vytvoříme nový struct: 'account accountExample;' vytvoříme v podstatě "balíček" výše deklarovaných proměnných, account_number tohoto konkrétního structu poté získáme např. 'accountExample.account_number ...'
  
  
informatika/maturita/20a.1584299234.txt.gz · Poslední úprava: autor: xdostal

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki