Datové typy 6 A1PRG - Programování – Seminář

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Základy ukládání dat v počítači
Standardní knihovní funkce pro práci s textovými řetězci
Programování v C jazyku - SEMINÁŘ
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
VY_32_INOVACE_7B12 Databáze Typy čísel.
Programovací jazyk C++
Standardní knihovní funkce: matematika a datum a čas
Racionální čísla, operátory, výrazy, knihovní funkce
Základní pojmy v jazyce C
Programování 2 Cvičení 5.
25/08/20141 Typ struktura (1) Datový typ struktura ( struct ) je agrego- vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou.
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Algoritmizace a programování Datové typy v Delphi - 05
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Algoritmizace a programování
Druhé cvičení Vytváření identifikátorů Datové typy
Operátory (1. část) 3 A1PRG - Programování – Seminář
Datové struktury. 2 Co je datová struktura v C datový typ složený z jiných datových typů nejjednodušší datová struktura je pole. všechny jeho prvky jsou.
Struktury, qsort, mergesort BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Informatika I 3. přednáška
Jazyk vývojových diagramů
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
C# - číselné datové typy
ZÁKLADNÍ DATOVÉ TYPY.
Téma: SČÍTÁNÍ A ODČÍTÁNÍ RACIONÁLNÍCH ČÍSEL 2
Jednoduché datové typy
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Jazyk vývojových diagramů
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Další abstraktní datové typy
Informatika I 4. přednáška
MS ACCESS.
Cvičení.
Radim Farana Podklady pro výuku
Přednost početních operací
Datové typy a struktury
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
IB111 Programování a algoritmizace
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
C – procedury Mgr. Lenka Švancarová.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Programování v jazyce C++
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Typ struktura (1) Datový typ struktura (struct) je agrego-vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou mít různé datové.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Programovací jazyk C++
Výukový materiál zpracován v rámci projektu
Vzorové řešení zápočtového testu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Datové typy v jazyce C Datové typy void skalární aritmetické
Proměnné (1) Proměnná: Definice proměnných:
Datové typy v jazyce C Datové typy void skalární aritmetické
Union neboli sjednocení Bitová pole
Transkript prezentace:

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

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

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.

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

Celočíselné datové typy Způsob uložení neznaménkových čísel v paměti: Př. Uložení čísla 131 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 hodnota bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 hodnota

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 bit Z 14 13 12 11 10 9 8 7 6 5 4 3 2 1 hodnota bit Z 14 13 12 11 10 9 8 7 6 5 4 3 2 1 hodnota bit Z 14 13 12 11 10 9 8 7 6 5 4 3 2 1 hodnota

Celočíselné datové typy Název typu Popis Vel. [b] Dolní mez Horní 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 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 Long long obsaženo od normy C99. Pro načítání používáme scanf(„%lld“,&x); Pozn.: Datový typ long long int zavádí až norma C99

Celočíselné datové typy Název typu Popis Vel. [b] Dolní mez Horní mez unsigned int Celé číslo bez znaménka 32 4 294 967 295 unsigned short int Krátké celé číslo bez znaménka 16 65 536 unsigned long int Dlouhé celé číslo bez znaménka unsigned long long int Velmi dlouhé celé číslo bez znaménka 64 18 446 744 073 709 551 616 unsigned char Znak bez znaménka 8 255 Long long obsaženo od normy C99. Pro načítání používáme scanf(„%lld“,&x); Pozn.: Datový typ long long int zavádí až norma C99

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.

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);

Celočíselné datové typy Ukázka 1 Rozsahy datových typů

Racionální datové typy Název typu Popis Vel. [b] Dolní mez Horní mez float Reálné číslo s jednoduchou přesností 32 3.4e-38 3.4e38 double Reálné číslo s dvojitou přesností 64 1.7e-308 1.7e308 long double Reálné číslo se zvýšenou přesností 80 3.4e-493 1.1e493 Long long obsaženo od normy C99. Pro načítání používáme scanf(„%lld“,&x);

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.

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 2e) 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) Bit 31 30 29 … 24 23 22 21 … 1 0 Význam Znaménko Exponent (8 bitů) Mantisa (23 bitů)

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 2e) 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) Bit 63 62 61 … 53 52 51 50 … 1 0 Význam Znaménko Exponent (11 bitů) Mantisa (52 bitů)

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); }

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

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;

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.

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

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!");

Celočíselné datové typy Ukázka 2 Výčtový typ

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, …)

Struktury Definice struktury: struct <nazev> { <promenna1>; <promenna2>; …; <promennaN>; }; Příklad: struct bod{ int x; int y; };

Struktury Inicializace struktury: struct <nazevstruktury> <identifikator> = { <hodnota1>, <hodnota2>, …, <hodnotaN>}; Příklad: struct bod A = {3, 2};

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

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};

Celočíselné datové typy Ukázka 3 Struktury

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.cz