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 Datové typy 6 Verze

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 bit hodnota bit hodnota

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 bitZ hodnota bitZ hodnota bitZ hodnota

7 Celočíselné datové typy Název typuPopisVel. [b]Dolní mezHorní mez signed int Celé číslo se znaménkem signed short int Krátké celé číslo se znaménkem signed long int Dlouhé celé číslo se znaménkem signed long long int Velmi dlouhé celé číslo se znaménkem signed char Znak se znaménkem 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 unsigned short int Krátké celé číslo bez znaménka unsigned long int Dlouhé celé číslo bez znaménka unsigned long long int Velmi dlouhé celé číslo bez znaménka unsigned char Znak bez znaménka 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 e38 double Reálné číslo s dvojitou přesností 641.7e e308 long double Reálné číslo se zvýšenou přesností 803.4e e493

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, … ) Bit … … 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 do 1023).  Mantisa – 52 bitů – od nejvyššího bitu (2 -1, 2 -2, 2 -3, … ) Bit … … 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 218/U3 Prezentace k dispozici na


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

Podobné prezentace


Reklamy Google