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.

Slides:



Advertisements
Podobné prezentace
Základy ukládání dat v počítači
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Číselné obory -Zákony, uzavřenost a operace
Programování v C jazyku - SEMINÁŘ
Racionální čísla, operátory, výrazy, knihovní funkce
Základní pojmy v jazyce C
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,
Základy informatiky přednášky Kódování.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Algoritmizace a programování
Skriptový jazyk, který se používá při tvorbě stránek.
Datové typy 6 A1PRG - Programování – Seminář
Informatika I 3. přednáška
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.
Jednoduché datové typy
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
C – strukturované příkazy
MATEMATIKA I.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Datové typy a struktury
Programovací jazyk PASCAL
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Příklady v jazyku C – část 3
Výrok „Dostali na to neomezený rozpočet, a podařilo se jim ho překročit …„ (Michael Armstrong, CEO, problém Y2K, )
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.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
Konečné automaty Vít Fábera.
C – switch Mgr. Lenka Švancarová. switch syntaxe switch (výraz) { case hodnota_1: příkaz(y)_ve_větvi_1; case hodnota_2: příkaz(y)_ve_větvi_2; … default:
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
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.
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
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é.
Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán.
Řetězce String. Co je to řetězec Jako řetězec označujeme pojmenovanou skupinu libovolných znaků Deklarujeme jej pomocí příkazu Délka řetězce není v tomto.
Číselné soustavy VII ASCII kódování Jana Bobčíková.
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é.
Funkce. Funkce - definice Funkce je zobrazení, které každému číslu z podmnožiny množiny reálných čísel R přiřazuje právě jedno reálné číslo. Funkci značíme.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ 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é.
Algoritmizace a programování
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
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.
Pseudonáhodná čísla (1)
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Datové typy v jazyce C Datové typy void skalární aritmetické
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.
Ř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.
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.
Ř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.
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é
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

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 Konstanty znakového typu se zapisují jako znaky uzavřené mezi apostrofy –např. ’*’, ’A’, ’B’, ’c’ atd. Pro zápis hodnot znakového typu je také možné použít řídící posloupnost: –uvozena symbolem \ podobně jako v řetězco- vém literálu:

25/04/20152 Znakový typ (2) ’\n’ přechod na nový řádek ’\t’ horizontální tabulátor ’\\’ zpětné lomítko ’\’’ apostrof ’\xhh’ kde hh označuje číslo v šestnáctkové soustavě požadovaného znaku ’\ooo’ kde ooo označuje číslo v osmičkové soustavě požadovaného znaku Patří mezi integrální datové typy Jeho hodnoty jsou celá čísla a mohou se po- užít ve výrazech jako celočíselné operandy

25/04/20153 Znakový typ (3) Jazyk C rozlišuje tři druhy znakového typu: –prostý – char –se znaménkem – signed char –bez znaménka – unsigned char Každý z těchto typů zaujímá stejné množ- ství paměti (1 B  sizeof(char) = 1 ), ale může reprezentovat různé hodnoty Interpretace prostého znakového typu (se znaménkem nebo bez znaménka) je závislá na konkrétní implementaci

25/04/20154 Znakový typ (4) Hlavičkový soubor limits.h definuje pojmenované konstanty udávající rozsahy jednotlivých druhů znakového typu: JménoHodnotaVýznam SCHAR_MIN –128 Minimální hodnota pro signed char SCHAR_MAX 127 Maximální hodnota pro signed char UCHAR_MAX 255 Maximální hodnota pro unsigned char CHAR_MIN –128 Min. hodnota pro char CHAR_MAX 127 Max. hodnota pro char

25/04/20155 Znakový typ (5) Na dvojice hodnot znakového typu lze apliko- vat relační operátory ( ==, !=, =, > ) Musí splňovat následující požadavky: –podmnožina dekadických číslic ’0’ až ’9’ musí být numericky uspořádaná a souvislá –podmnožina velkých písmen ’A’ až ’Z’ a pod- množina malých písmen ’a’ až ’z’ musí být abecedně uspořádané (nemusí být souvislé)

25/04/20156 Znakový typ (6) Číselné hodnoty znakových konstant jsou od- vozeny z odpovídající kódové tabulky, např. rozšířené množiny ASCII (American Standard Code for Information Interchange): –platí: X < Y pro  X  ’A’ ; ’Z’   Y  ’a’ ; ’z’  neplatí tedy např. ’a’ < ’Z’ –jestliže rozšířená část ASCII obsahuje znaky ná- rodní abecedy, tak jejich množina není souvislá ani uspořádaná

25/04/20157 Znakový typ (7) Poznámky: –desítková číslice jako konstanta znakového ty- pu nepředstavuje svou numerickou hodnotu. Tuto hodnotu můžeme vypočítat pomocí: c – ’0’, kde c  ’0’ ; ’9’  –pro zobrazení (načtení) hodnoty znakového typu prostřednictvím funkce printf ( scanf ) je možné použít specifikaci %c –funkce printf (při použití formátovací znač- ky %c ) zobrazuje znak po převodu na unsigned char

25/04/20158 Funkce getchar Deklarována v: stdio.h Prototyp: int getchar(void); Funkce: –načte znak ze standardního vstupu Vrácená hodnota: –v případě bezchybného načtení vrací načtený znak jako hodnotu typu int –v případě chyby nebo dosažení konce souboru vstupních dat vrací hodnotu EOF (-1) –vrácená hodnota by měla být přiřazována do proměnné typu int (nikoliv char )

25/04/20159 Funkce putchar Deklarována v: stdio.h Prototyp: int putchar(int c); Funkce: –zobrazí znak specifikovaný parametrem c na standardní výstup Vrácená hodnota: –v případě bezchybného výstupu vrací stejný znak, který byl vypsaný –v případě chyby vrací hodnotu EOF (-1)

25/04/ Výčtový typ (1) Představuje množinu celočíselných hodnot reprezentovaných identifikátory Použité identifikátory se nazývají výčtové konstanty Definice výčtového typu: enum jmTypu {id 1, id 2, …, id n }; Příklad: enum den {po, ut, st, ct, pa, so, ne};

25/04/ Výčtový typ (2) Poznámka: –žádný identifikátor se nesmí vyskytovat v sez- namu prvků více než u jednoho výčtového typu Na základě definovaného výčtového typu je možné následně definovat proměnné: enum jmTypu p 1, p 2, …, p n ; kde p 1, p 2, …, p n označují identifikátory proměnných typu jmTypu Příklad: enum den d1, d2; definuje proměnné d1 a d2 typu den

25/04/ Výčtový typ (3) Definici výčtového typu a odpovídajících proměnných lze spojit do jednoho zápisu Příklad: enum barva {cervena, zelena, modra} zaklBarva; Výčtový typ patří mezi integrální typy  jeho hodnoty lze používat jako celočíselné operandy (je možné na ně aplikovat stejné operátory)

25/04/ Výčtový typ (4) Celočíselné hodnoty výčtového typu jsou dány pořadím jednotlivých identifikátorů v definici typu (není-li uvedeno jinak): –první identifikátor má hodnotu 0 –hodnoty dalších identifikátorů se zvyšují po jedné Jazyk C také dovoluje konkrétní hodnotě výčtového typu přiřadit libovolné celé číslo

25/04/ Výčtový typ (5) Příklad: enum cisla {nula, jedna,dve,tri, deset = 10, jedenact, dvanact, trinact, dvacet = deset + 10}; Jednotlivé hodnoty výčtového typu pak mají následující celočíselné hodnoty: nula jedna dve tri deset jedenact dvanact trinact dvacet

25/04/ Příkaz switch (1) Slouží k vícenásobnému větvení Testuje, zda (řídící) výraz odpovídá jed- nomu z několika konstantních výrazů Řídící výraz musí být integrálního typu Jednotlivé konstantní výrazy jsou uvozeny klíčovým slovem case a musí být vzájem- ně odlišné, tj. stejný konstantní výraz nesmí být v rámci jednoho příkazu switch po- užitý vícekrát)

25/04/ Příkaz switch (2) Obecný tvar: switch (výraz) { case konst_výraz 1 : příkazy 1 case konst_výraz 2 : příkazy 2 case konst_výraz n : příkazy n default: příkazy n+1 } Nepovinná část

25/04/ Příkaz switch (3) Funkce: –vyhodnotí se řídící výraz –je-li hodnota řídícího výrazu ( výraz ) rovna konst_výraz i ( i = 1, 2, …, n ) za klíčo- vým slovem case, pak se začnou provádět příkazy i –není-li hodnota řídícího výrazu rovna žádnému z konst_výraz i a je-li použito klíčové slovo default, pak se prove- dou příkazy n+1 není-li použito klíčové slovo default, pak se po- kračuje příkazem následujícím bezprostředně za příkazem switch

25/04/ Příkaz switch (4) Předá-li se řízení na příkazy i ( i = 1, 2, …, n ), pak se provádějí postupně všechny příkazy j ( j = i, i+1, …, n ( n+1 )) Provádění pokračuje tak dlouho, dokud se: –nedosáhne konce příkazu switch –nepřejde ven z příkazu switch prostřednict- vím příkazu break, return nebo goto

25/04/ Příkaz switch (5) Poznámka: –je-li zapotřebí, aby se pro více různých hodnot řídícího výrazu provedly stejné příkazy, je možné zapsat více klíčových slov case následovaných různými konstantními výrazy –jako oddělovač (mezi konstantním výrazem a klíčovým slovem case ) se používá symbol :

25/04/ 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

25/04/ 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.10 b ) 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ů

25/04/ 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

25/04/ 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ů

25/04/ 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

25/04/ 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 FLT_MIN FLT_MAX DBL_EPSILON DBL_MIN DBL_MAX LDBL_EPSILON LDBL_MIN LDBL_MAX E– E– E E– E– E E– E– E B 8 B 12 B

25/04/ 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

25/04/ 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 )

25/04/ Knihovní funkce (1) Hlavičkový soubor math.h poskytuje konstanty (typu double ): M_E hodnota e (Eulerova čísla) M_LOG2E hodnota log 2 e 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/ 

25/04/ Knihovní funkce (2) M_2_PI hodnota 2/  M_2_SQRTPI hodnota 2/  1/2 M_SQRT2 hodnota 2 1/2 M_SQRT1_2 hodnota 1/2 1/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

25/04/ Knihovní funkce (3) hyperbolické: –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); log 2 x

25/04/ Knihovní funkce (4) další: –double exp(double x); e x –double fabs(double x); |x| –double sqrt(double x); x 1/2 –double cbrt(double x); x 1/3 –double pow(double x, double y); x y –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

25/04/ 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

25/04/ 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