Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

A1PRG - Programování – Seminář Ing. Michal Datové typy 6 Verze 2009.01.

Podobné prezentace


Prezentace na téma: "A1PRG - Programování – Seminář Ing. Michal Datové typy 6 Verze 2009.01."— Transkript prezentace:

1 A1PRG - Programování – Seminář Ing. Michal Heczkoheczko@fai.utb.cz Datové typy 6 Verze 2009.01

2 Agenda  Co je to „Datový typ“  Celočíselné datové typy  Racionální datové typy  Prázdný typ (void)  Typ definovaný uživatelem (typedef)  Výčtový typ (enum)  Struktury

3 Datové typy  Pro uchovávání uživatelských hodnot, výsledků výpočtů a dalších hodnot používáme proměnné.  Pro každou proměnnou je nutné definovat datový typ:  Definuje jaká hodnota bude uložena v dané proměnné  Definuje velikost paměti, která je proměnné vyhrazena.

4 Celočíselné datové typy  Rozdělení  Znaménkové (klíčové slovo signed ) Kladná a záporná čísla  Neznaménkové (klíčové slovo unsigned ) Pouze kladná čísla a 0

5 Celočíselné datové typy  Způsob uložení neznaménkových čísel v paměti:  Př. Uložení čísla 131 bit1514131211109876543210 hodnota bit1514131211109876543210 hodnota0000000010000011

6 Celočíselné datové typy  Způsob uložení znaménkových čísel v paměti  Př. Uložení čísla 131  Př. Uložení čísla -131 bitZ14131211109876543210 hodnota bitZ14131211109876543210 hodnota0000000010000011 bitZ14131211109876543210 hodnota1000000010000011

7 Celočíselné datové typy Název typuPopisVel. [b]Dolní mezHorní mez signed int Celé číslo se znaménkem 32-2 147 483 648 2 147 483 647 signed short int Krátké celé číslo se znaménkem 16- 32 768 32 767 signed long int Dlouhé celé číslo se znaménkem 32-2 147 483 648 2 147 483 647 signed long long int Velmi dlouhé celé číslo se znaménkem 64-9 223 372 036 854 775 808 9 223 372 036 854 775 807 signed char Znak se znaménkem 8-128 127 Pozn.: Datový typ long long int zavádí až norma C99

8 Celočíselné datové typy Název typuPopisVel. [b]Dolní mezHorní mez unsigned int Celé číslo bez znaménka 320 4 294 967 295 unsigned short int Krátké celé číslo bez znaménka 160 65 536 unsigned long int Dlouhé celé číslo bez znaménka 320 4 294 967 295 unsigned long long int Velmi dlouhé celé číslo bez znaménka 640 18 446 744 073 709 551 616 unsigned char Znak bez znaménka 80 255 Pozn.: Datový typ long long int zavádí až norma C99

9 Celočíselné datové typy  Klíčové slovo unsigned značí použití čísla bez znaménka, signed se znaménkem. Pokud není uvedeno, je číslo definované jako číslo se znaménkem.  Velikosti v bitech a rozsahy jsou pouze orientační. U některých překladačů se mohou tyto hodnoty lišit.

10 Celočíselné datové typy  Datový typ long long :  Specifikován v normě C99  Pro vstup a výstup na terminál – %LLd (nebo %lld ): long long x; scanf(“%LLd”,&x); printf (“%LLd”,x);

11 Celočíselné datové typy

12 Racionální datové typy Název typuPopisVel. [b]Dolní mezHorní mez float Reálné číslo s jednoduchou přesností 323.4e-38 3.4e38 double Reálné číslo s dvojitou přesností 641.7e-308 1.7e308 long double Reálné číslo se zvýšenou přesností 803.4e-493 1.1e493

13 Racionální datové typy  Někdy označovány i názvem „Reálné datové typy“, ten však není zcela přesný.  Velikosti v bitech a rozsahy jsou pouze orientační. U některých překladačů se mohou tyto hodnoty lišit.

14 Racionální datové typy  V paměti uloženy v souladu s normou IEEE 754.  Float (racionální číslo v jednoduché přesnosti):  Nejvyšší bit – znaménko (0 = kladné; 1 = záporné číslo)  Exponent – 8 bitů – exponent (pro 2 e ) posunutý o hodnotu 127 (tak, aby mohl být v rozsahu od -126 do 127).  Mantisa – 23 bitů – od nejvyššího bitu (2 -1, 2 -2, 2 -3, … 2 -22. 2 -23 ) Bit3130 29 … 24 2322 21 … 1 0 VýznamZnaménkoExponent (8 bitů)Mantisa (23 bitů)

15 Racionální datové typy  Double (racionální číslo s dvojitou přesnosti):  Nejvyšší bit – znaménko (0 = kladné; 1 = záporné číslo)  Exponent – 11 bitů – exponent (pro 2 e ) posunutý o hodnotu 1023 (tak, aby mohl být v rozsahu od -1022 do 1023).  Mantisa – 52 bitů – od nejvyššího bitu (2 -1, 2 -2, 2 -3, … 2 -52. 2 -53 ) Bit6362 61 … 53 5251 50 … 1 0 VýznamZnaménkoExponent (11 bitů)Mantisa (52 bitů)

16 Prázdný typ  Klíčové slovo void  Nenabývá žádných hodnot  Použití:  Pokud funkce nemá žádné vstupní parametry: int soucet(void) { int a, b; scanf("%d %d",&a,&b); return (a+b); }

17 Prázdný typ  Pokud funkce nemá žádnou návratovou hodnotu: void pozdrav(void) { printf(„AHOJ!\n"); }

18 Typ definovaný uživatelem  Klíčové slovo typedef  Umožňuje vytvářet vlastní datové typy – vytvoří nové jméno pro již existující datový typ.  Př. typedef unsigned int delka; delka a, b; a = 5;

19 Výčtový typ  Klíčové slovo enum  Použití v případě, že existuje předem definovaná konečná množina hodnot, kterých může údaj nabývat.  Při definici výčtového typu je nutné uvést všechny hodnoty.

20 Výčtový typ  Obecná syntaxe: typedef enum {HODNOTA1, HODNOTA2, …, HODNOTAN} JMENO;  Příklad: typedef enum {PONDELI, UTERY, STREDA, CTVRTEK, PATEK, SOBOTA, NEDELE} DNY;

21 Výčtový typ  Použití: typedef enum {PONDELI, UTERY, STREDA, CTVRTEK, PATEK, SOBOTA, NEDELE} DNY; DNY d1; d1 = UTERY; if (d1 == UTERY) printf("Dnes je utery!");

22 Celočíselné datové typy

23 Struktury  Struktura  Skupina proměnných, které mohou být různého datového typu. Tyto proměnné jsou seskupeny pod jeden identifikátor.  Příklad použití: Definice bodu v rovině. Bod tvoří 2 souřadnice – x, y Údaje o zaměstnanci Každý zaměstnanec je popsán množinou atributů (jméno, adresa, rodné číslo, …)

24 Struktury  Definice struktury: struct { ; …; ; };  Příklad: struct bod{ int x; int y; };

25 Struktury  Inicializace struktury: struct = {,, …, };  Příklad: struct bod A = {3, 2};

26 Struktury  Přístup k jednotlivým prvkům struktur:. = ;  Příklad: struct bod A = {3, 2}; A.x = 5; A.y = 6;

27 Definice struktury pomocí typedef  Druhá možnost definice struktury: typedef struct { int x; int y; } bod;  Umožní definovat proměnnou bez klíčového slova struct: bod A;  Nebo s inicializací: bod A = {0,0};

28 Celočíselné datové typy

29 A1PRG-s 06. Datové typy Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.fai.utb.czhttp://vyuka.fai.utb.cz


Stáhnout ppt "A1PRG - Programování – Seminář Ing. Michal Datové typy 6 Verze 2009.01."

Podobné prezentace


Reklamy Google