Reálné typy (1) Zahrnují konečnou podmnožinu těch reálných čísel, která jsou zobrazitelná v paměti počítače (v jistém rozsahu a s jistou přesností) Hodnoty.

Slides:



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

Standardní knihovní funkce pro práci s textovými řetězci
Číselné obory -Zákony, uzavřenost a operace
Komplexní čísla. Komplexní číslo je uspořádaná dvojice [x, y], kde číslo x představuje reálnou část a číslo y imaginární část. Pokud je reálná část nulová,
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Pascal - příklady.
Racionální čísla, operátory, výrazy, knihovní funkce
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.
Algoritmizace a programování Operátory a příkazy v Delphi - 07
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Druhé cvičení Vytváření identifikátorů Datové typy
ADT Strom.
Operátory (1. část) 3 A1PRG - Programování – Seminář
Datové typy 6 A1PRG - Programování – Seminář
Základní číselné množiny
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
Jednoduché datové typy
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
C – strukturované příkazy
MATEMATIKA I.
Datové typy a práce s nimi
Exponenciální funkce. y = f ( x ) = e x D ( f ) = R R ( f ) = (0, +∞)
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Informatika I 4. přednáška
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
Cvičení.
Datové typy a struktury
Programovací jazyk PASCAL
Příklady v jazyku C – část 3
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Ukazatele BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Porovnávání desetinných čísel
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Příklady v jazyku C – část 2
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é.
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ změna měřítka odkaz.
25/04/20151 Znakový typ (1) Používán pro reprezentaci konečné uspořá- dané množiny znaků, které umí: –vstupní zařízení akceptovat –výstupní zařízení publikovat.
Exponenciální funkce. y = f ( x ) = e x D ( f ) = R R ( f ) = (0, +∞)
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é.
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é.
Definiční obor a obor hodnot
Výukový materiál zpracován v rámci projektu
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.
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Datové typy v jazyce C Datové typy void skalární aritmetické
Řetězce (24) Funkce strchr: deklarována v: string.h
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Oblast platnosti identifikátoru (1)
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Typ ukazatel (1) Proměnné typu ukazatel (pointer) uchovávají paměťovou adresu Hodnota ukazatele říká, kde (na jaké adrese) se v paměti nachází nějaký objekt.
MNOŽINY RNDr. Jiří Kocourek.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Proměnné (1) Proměnná: Definice proměnných:
Datové typy v jazyce C Datové typy void skalární aritmetické
Funkce s proměnným počtem parametrů
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Reálné typy (1) Zahrnují konečnou podmnožinu těch reálných čísel, která jsou zobrazitelná v paměti počítače (v jistém rozsahu a s jistou přesností) Hodnoty reálných typů jsou v paměti zobraze-ny jako čísla v pohyblivé desetinné čárce, tj. jako dvojice čísel (a, b), kde: a je mantisa b je exponent 09/06/2018

Reálné typy (2) V jazyce C se zapisují s desetinnou tečkou nebo ve tvaru aEb (tento zápis odpovídá matematickému zápisu a.10b) Je-li alespoň jeden z operandů reálného ty-pu (druhý může být typu celočíselného), dává aplikace operátorů +, – , *, / výsledek reálného typu Hodnoty reálných typů je možné porovná-vat pomocí relačních operátorů 09/06/2018

Reálné typy (3) V jazyce C je možné pracovat se třemi růz-nými reálnými typy: float reálné číslo s jednoduchou přesností double reálné číslo s dvojitou přesností long double Jazyk C nepředepisuje, jaké velikosti mají být pro jednotlivé reálné typy použity 09/06/2018

Reálné typy (4) Musí platit: hodnoty typu float jsou podmnožinou hodnot typu double hodnoty typu double jsou podmnožinou hod-not typu long double Hlavičkový soubor float.h definuje poj-menované konstanty dokumentující charak-teristiku jednotlivých reálných typů 09/06/2018

Reálné typy (5) Označení těchto konstant má následující tvar: začíná zápisem specifikujícím reálný typ: FLT_ pro typ float DBL_ pro typ double LDBL_ pro typ long double pokračuje zápisem udávajícím konkrétní charak-teristiku, např.: EPSILON minimální x > 0.0 takové, že 1.0+x != 1.0 MIN minimální normalizované kladné číslo MAX maximální reprezentovatelné konečné číslo 09/06/2018

Reálné typy (6) Pro běžnou reprezentaci reálných čísel danou standardem ANSI/IEEE 754 – 1985 platí (uvedené hodnoty jsou zaokrouhlené): FLT_EPSILON 1.19209290E–007 4 B FLT_MIN 1.17549435E–038 FLT_MAX 3.40282347E+038 DBL_EPSILON 2.2204460492503131E–016 8 B DBL_MIN 2.2250738585072014E–308 DBL_MAX 1.7976931348623157E+308 LDBL_EPSILON 1.0842021724855044E–019 12 B LDBL_MIN 3.3621031431120935E–4932 LDBL_MAX 1.1897314953572318E+4932 09/06/2018

Poznámka – vstup/výstup (1) Při zobrazování hodnot reálných typů pomocí funkce printf se používá: pro hodnoty typu float nebo double specifi-kátor f, e, E, g nebo G pro hodnoty typu long double modifikátor délky L následovaný příslušným specifikátorem (f, e, E, g nebo G)  Lf, Le, LE, Lg nebo LG 09/06/2018

Poznámka – vstup/výstup (2) Pro načítání hodnot reálných typů pomocí funkce scanf se používá: pro hodnoty typu float operace f, e, g pro hodnoty typu double modifikátor velikosti l následovaný operací f, e, g (lf, le, lg ) pro hodnoty typu long double modifikátor velikosti L následovaný operací f, e, g (Lf, Le, Lg ) 09/06/2018

Knihovní funkce (1) Hlavičkový soubor math.h poskytuje konstanty (typu double): M_E hodnota e (Eulerova čísla) M_LOG2E hodnota log2e M_LOG10E hodnota log e M_LN2 hodnota ln 2 M_LN10 hodnota ln 10 M_PI hodnota  M_PI_2 hodnota /2 M_PI_4 hodnota /4 M_1_PI hodnota 1/ 09/06/2018

Knihovní funkce (2) funkce, např.: M_2_PI hodnota 2/ M_2_SQRTPI hodnota 2/1/2 M_SQRT2 hodnota 21/2 M_SQRT1_2 hodnota 1/21/2 funkce, např.: goniometrické (argument musí být vždy v radiánech): double sin(double x); sin x double cos(double x); cos x double tan(double x); tg x cyklometrické (výsledek je vždy v radiánech): double asin(double x); arcsin x double acos(double x); arccos x double atan(double x); arctg x 09/06/2018

Knihovní funkce (3) hyperbolické: hyperbolometrické: logaritmické: double sinh(double x); sinh x double cosh(double x); cosh x double tanh(double x); tgh x hyperbolometrické: double asinh(double x); arcsinh x double acosh(double x); arccosh x double atanh(double x); arctgh x logaritmické: double log(double x); ln x double log10(double x); log x double logb(double x); log2x 09/06/2018

Knihovní funkce (4) další: double exp(double x); ex double fabs(double x); |x| double sqrt(double x); x1/2 double cbrt(double x); x1/3 double pow(double x, double y); xy double ceil(double x); nejmenší celočíselná hodnota, která není menší než x double floor(double x); největší celočíselná hodnota, která není větší než x double fmod(double x, double y); zbytek po dělení čísla x číslem y double rint(double x); zaokrouhlení čísla x 09/06/2018

Knihovní funkce (5) Poznámky: jestliže při použití výše uvedených funkcí dojde k chybě, tak se nastaví hodnota proměnné errno na hodnotu různou od nuly hodnota errno rovna: EDOM značí, že argument funkce je mimo její definiční obor ERANGE značí, že výsledek je příliš velký nebo příliš malý, tj. nelze jej reprezentovat typem, který funkce vrací konstanty EDOM a ERANGE jsou definovány v hlavičkovém souboru errno.h 09/06/2018

Knihovní funkce (6) pokud je zapotřebí testovat hodnotu errno, pak by před voláním funkce měla být proměnná errno nastavena na hodnotu 0 09/06/2018

Typ ukazatel (1) Proměnné typu ukazatel (pointer) uchovávají paměťovou adresu Hodnota ukazatele říká, kde (na jaké adrese) se v paměti nachází nějaký objekt (hodnota určitého datového typu), tj. ukazuje na hodno-tu určitého datového typu Při definici proměnné typu ukazatel je specifi-kován i datový typ udávající informaci o typu hodnoty, která je na adrese dané ukazatelem očekávána 09/06/2018

Typ ukazatel (2) Definice proměnné typu ukazatel: datový_typ *idPromenne; definuje proměnnou idPromenne, jejíž hodnota může obsahovat adresu, na níž je uložena hodnota typu datový_typ Příklad: int *ptrInt; proměnná ptrInt může obsahovat adre-su, na níž je uložena hodnota typu int 09/06/2018

Typ ukazatel (3) Jazyk C poskytuje dva operátory pro práci s proměnnými typu ukazatel: * dereferenční: vrací hodnotu uloženou na adrese operandu & referenční: vrací adresu operandu (proměnné) Příklad: ptrInt: představuje adresu paměti *ptrInt: označuje místo v paměti, se kterým lze pracovat jako s proměnnou ty- pu int (obsah adresy uložené v ptrInt) 09/06/2018

Typ ukazatel (4) Nechť: int *ptrInt; int k = 11; ptrInt = &k; adresa ptrInt adresa k Nechť: int *ptrInt; int k = 11; Adresy 1000 1032 1064 1096 Hodnoty 11 adresa ptrInt adresa k ptrInt = &k; *ptrInt = 80; Adresy 1000 1032 1064 1096 Hodnoty 1064 80 09/06/2018

Typ ukazatel (5) Příklad: int x = 1, y = 2; int *ptrInt; ptrInt = &x; 09/06/2018

Typ ukazatel (6) y = *ptrInt; *ptrInt = 0; x: 1 y: 1 ptrInt: x: y: 1 y: 1 ptrInt: 09/06/2018

Typ ukazatel (7) V hlavičkovém souboru stdio.h je defi-nována konstanta NULL vyjadřující prázd-ný ukazatel Konstantu NULL lze přiřadit každému uka-zateli bez ohledu na datový typ, na nějž ukazuje Má-li ukazatel hodnotu NULL, pak to zna-mená, že neukazuje na žádný objekt v pa-měti 09/06/2018

Typ ukazatel (8) Na jeden objekt může obecně ukazovat vět-ší množství ukazatelů, pomocí nichž lze provést jeho zpřístupnění Hodnoty typu ukazatel je možné porovnávat pomocí relačních operátorů Rovnost (resp. nerovnost) ukazatelů lze in-terpretovat jako test, zda-li dva ukazatele ukazují (resp. neukazují) na stejný objekt 09/06/2018

Typ ukazatel (9) Poznámka (obecný ukazatel): používán pro ukazatele, které neukazují na hodnoty žádného konkrétního typu zapisován pomocí datového typu void např. void *ukazatel; datový typ void * lze následně přetypovat na libovolný typový ukazatel ukazatel typu void * lze přiřadit jakémukoliv ukazateli 09/06/2018

Agregované typy dat (1) Identifikátor proměnné agregovaného (slože-ného, strukturovaného) datového typu ozna-čuje obecně větší množství hodnot, které spolu souvisí Agregované typy jsou kompozicí jiných typů Agregovaný datový typ je určen typem struk-turování a typem složek, z nichž je tvořen (tyto složky mohou být opět agregované) 09/06/2018

Agregované typy dat (2) Agregovaný typ je charakterizován svým: konstruktorem: mechanismus, který určuje, jak konstruovat hodnotu agregovaného typu z jejích komponent (složek) selektorem: mechanismus určující způsob přístu- pu k jednotlivým složkám (výběr složky) Každá hodnota agregovaného typu má něko-lik komponent: téhož typu – homogenní datový typ (pole) různých typů – heterogenní datový typ (struktura) 09/06/2018