Stručný obsah Úvod 41 Překlad a sestavení programu: základní dovednosti Překlad a sestavení programu: další možnosti

Rozměr: px
Začít zobrazení ze stránky:

Download "Stručný obsah Úvod 41 Překlad a sestavení programu: základní dovednosti Překlad a sestavení programu: další možnosti"

Transkript

1 Stručný obsah Úvod 41 Překlad a sestavení programu: základní dovednosti 43 Překlad a sestavení programu: další možnosti 57 Implementační a hlavičkové soubory 73 Ladění v integrovaném vývojovém prostředí 83 Ladění pomocí programových konstrukcí 97 Program, jeho běh a prostředí 103 Deklarace a proměnné 113 Ukazatele a pole 123 Správa paměti 135 Reference 145 Práce se znaky 149 Znakové řetězce (pole znaků) 159 Znakové řetězce (typ basic_string<>) 175 Funkce a ukazatele na ně 187 Preprocesor a makra 205 Celá čísla 215 Reálná čísla 225 Příkazy 237 Výrazy a operátory 249 Výčtové typy 259

2 4 Stručný obsah Struktury a unie 265 Objektový typ a jeho deklarace 273 Vytvoření instance 289 Kopírování instancí 299 Zánik instance 309 Dědění a polymorfizmus 315 Objektový návrh 331 Přetěžování operátorů 341 Zpracování chybových stavů 361 Jmenné prostory 375 Šablony 383 Práce s datovými typy 403 Vstupní a výstupní operace v jazyce C 413 Vstupní a výstupní operace v jazyce C Na přiloženém CD naleznete Kontejnery ve standardní knihovně 453 Algoritmy ve standardní knihovně 467 Lokální nastavení v C a v C Komplexní čísla 503 C++0x 511 Několik tipů na závěr 521

3 Obsah Úvod 41 Komu je kniha určena 41 Doprovodné CD 42 Překlad a sestavení programu: základní dovednosti 43 1 Překládáme program složený z jediného souboru 43 2 Překládáme program a určujeme jméno výsledného souboru (bcc32, cl) 43 3 Překládáme program a určujeme jméno výsledného souboru (g++) 44 4 Jak přeložit soubor bez sestavování 44 5 Sestavujeme spustitelný program z objektového souboru (bcc32, cl) 44 6 Sestavujeme spustitelný program z objektového souboru (g++) 44 7 Překládáme program složený z několika souborů 45 8 Překládáme program složený z několika souborů a určujeme jméno výsledného souboru (bcc32) 45 9 Překládáme program složený z několika souborů a určujeme jméno výsledného souboru (cl, g++) Připojujeme nestandardní knihovnu (bcc32) Připojujeme nestandardní knihovnu (C++Builder 2009) Připojujeme nestandardní knihovnu (cl) Připojujeme nestandardní knihovnu (Visual C ) Určujeme adresář s knihovnami (g++) Připojujeme konkrétní standardní knihovnu (g++) Připojujeme konkrétní nestandardní knihovnu (g++) Jak ušetřit práci: Program MAKE Jak na soubor Makefile Pozor na mezeru před pravidlem v souboru makefile Když se příkaz v souboru makefile nevejde na jeden řádek Odkazujeme na jméno cíle v souboru makefile (mingw32-make) Odkaz na předpoklady v souboru makefile (mingw32-make) Odkaz na všechny soubory daného typu v souboru makefile (mingw32-make) Odkaz na první předpoklad v souboru makefile (mingw32-make) Jak na úklid pomocí souboru makefile (mingw32-make) Jak na všechny úpravy souboru makefile z předchozích tipů Jaký jazyk překládáme? (bcc) Jaký jazyk překládáme? (C++Builder) Jaký jazyk překládáme? (cl) Jaký jazyk překládáme? (Visual Studio 2008) 54

4 6 Obsah 31 Jaký jazyk překládáme? (g++) Překlad zdrojového souboru v C99 (g++) Jak získat základní nápovědu k překladači (bcc32) Jak na jména standardních hlavičkových souborů Jak využít hlavičkové soubory z jazyka C v C++ 56 Překlad a sestavení programu: další možnosti Jak na optimalizaci Optimalizujeme velikost výsledného programu Optimalizujeme velikost výsledného programu (C++Builder 2009) Optimalizujeme velikost výsledného programu (Visual Studio 2008) Optimalizujeme rychlost výsledného programu Optimalizujeme rychlost výsledného programu v g Optimalizujeme rychlost výsledného programu (C++Builder 2009) Optimalizace rychlosti výsledného programu (Visual Studio 2008) Proč definovat podmínková jména Definujeme podmínkové jméno Jak na definici podmínkového jména (C++Builder 2009) Jak na definici podmínkového jména (Visual C ) Jak na další adresář pro hlavičkové soubory Jak na další adresář pro hlavičkové soubory (C++Builder 2009) Jak na další adresář pro hlavičkové soubory (Visual C ) Vytvoření statické knihovny (bcc32, cl) Vytvoření statické knihovny (g++) Vytvoření statické knihovny (C++Builder 2009) Vytvoření statické knihovny (Visual Studio 2008) Co je výstupem preprocesoru Co je výstupem preprocesoru (cl) Co je výstupem preprocesoru (g++) Co je výstupem preprocesoru (Visual Studio 2008) Překlad vybraného zdrojového souboru do asembleru (bcc32) Překlad vybraného zdrojového souboru do asembleru (cl) Překlad vybraného zdrojového souboru do asembleru (g++) Překlad vybraného zdrojového souboru do asembleru (C++Builder 2009) Překlad vybraného zdrojového souboru do asembleru (Visual Studio 2008) Překlad všech souborů projektu do asembleru (C++Builder 2009) Překlad všech zdrojových souborů do asembleru (Visual Studio 2008) 72

5 Obsah 7 Implementační a hlavičkové soubory Co je modul a jeho rozhraní Použití hlavičkového souboru Kde překladač hledá hlavičkový soubor Kam lze vložit hlavičkový soubor Jak zabránit opakovanému čtení hlavičkového souboru Jak zabránit opakovanému čtení hlavičkového souboru ve Visual C Jak exportovat globální proměnnou z modulu Jak na globální proměnnou, kterou nechceme exportovat Jak na globální proměnnou, kterou nechceme exportovat (jen C++) Jek exportovat konstanty (const) z modulů Jak exportovat konstanty (const) z modulů společné řešení pro C a C Jak na konstanty, které z modulu nechceme exportovat Jak exportovat funkci z modulu Jak na funkci, kterou nechceme exportovat Jak na funkci, kterou nechceme exportovat (jen C++) Jak na funkci s modifikátorem inline v hlavičkových souborech (C++ a C99) Makra v hlavičkových souborech Neobjektový datový typ exportovaný z modulu Objektový typ exportovaný z modulu Vložené (inline) metody Datový typ, který nechceme exportovat z modulu Šablona funkce exportovaná z modulu typické řešení Šablona funkce exportovaná z modulu jiná možnost (jen některé nejnovější překladače) Šablona třídy exportovaná z modulu typické řešení Šablona třídy exportovaná z modulu jiná možnost (jen některé nejnovější překladače) 81 Ladění v integrovaném vývojovém prostředí Překlad pro ladění (C++Builder) Překlad pro ladění (Visual C++) Jak spustit program z IDE (C++Builder) Jak spustit program z IDE (Visual Studio 2008) Chceme vidět výsledky konzolové aplikace (C++Builder 2009) Chceme vidět výsledky konzolové aplikace (Visual Studio 2008) Jak krokovat program Krokování s překročením podprogramu Krokování se vstupem do podprogramu Zjištění hodnoty proměnné 87

6 8 Obsah 101 Zjištění hodnoty proměnné (C++Builder) Zjištění hodnoty proměnné (Visual Studio 2008) Sledované výrazy (C++Builder 2009) Sledované výrazy (Visual Studio 2008) Měníme hodnotu proměnné (C++Builder 2009) Měníme hodnotu proměnné (Visual Studio 2009) Krokování od zvoleného místa: doběhni ke kurzoru Krokování od zvoleného místa: zarážka Podmíněné zarážky (C++Builder 2009) Podmíněné zarážky (Visual Studio 2008) Jak ukončit krokování Jak krokovat v asembleru Posloupnost volání funkcí (C++Builder 2009) Posloupnost volání funkcí (Visual Studio 2008) Jak zjistit obsah registrů (C++Builder 2009) Jak zjistit obsah registrů (Visual C ) Jak zjistit obsah paměti (C++Builder 2009) Jak zjistit obsah paměti (Visual C ) Zakomentování vybraných řádků zdrojového kódu Parametry programu zadávané v příkazovém řádku Parametry programu při spouštění v IDE (C++Builder 2009) Parametry programu při spouštění v IDE (Visual Studio 2008) 94 Ladění pomocí programových konstrukcí Potřebujeme dočasně odstranit několik řádků z programu Potřebujeme odstranit větší počet řádků Definice podmínkového jména pro ladění Co je ladicí kód Jednoduchý ladicí tisk (C) Makro pro ladicí tisk Podmíněné makro Kam umístit direktivu #define, je-li makro v hlavičkovém souboru? Ve které funkci jsme? (C99) Ve kterém zdrojovém souboru jsme? Na kterém řádku zdrojového souboru jsme? Při ladění prověřujeme kontrakt Test vstupních podmínek při ladění: aserce Odstranění asercí z programu Aserce, nebo výjimky? 101

7 Obsah Test výstupních podmínek Je test dostatečný? Test invariantů Proč nerandomizovat 102 Program, jeho běh a prostředí Funkce main(), wmain() a jiné Abychom nemuseli volit: _tmain() Formální parametry funkce main() a wmain() Formální parametry funkce _tmain() Tradiční jména parametrů funkce main() Typ funkce main() Omezení kladená na funkci main() v C Co je startovací kód Parametry příkazové řádky programu S kolika parametry v příkazové řádce byl náš program spuštěn? Jak se jmenuje náš program? Výpis všech parametrů programu Jak na proměnné prostředí Výpis všech proměnných prostředí (nestandardní řešení) Zjištění hodnoty proměnné prostředí Zjištění hodnoty proměnné prostředí v Unicode (nestandardní řešení) Nastavení hodnoty proměnné prostředí (nestandardní řešení) Spouštíme z programu jiný program Kód ukončení programu Předdefinované konstanty pro kód ukončení Když program končí Řádné ukončení programu Spořádané ukončení programu jinde než ve funkci main() Ukončení bez úklidu: _Exit() (C99) Abnormální ukončení programu Abnormální ukončení programu v C Měníme funkci, kterou volá terminate() Vlastní úklid při ukončení programu: funkce registrované voláním atexit() Pořadí volání funkcí registrovaných pomocí atexit() Podařila se registrace funkce pomocí atexit()? Kdy se inicializují globální proměnné Jak zajistit včasnou inicializaci objektu? 111

8 10 Obsah Deklarace a proměnné Jaký je rozdíl mezi deklarací a definicí Pravidlo jediné definice pro proměnné Informativní deklarace proměnné Definiční deklarace globální proměnné Deklarace lokální automatické proměnné Lokální proměnná, která si pamatuje hodnotu Počítáme, kolikrát byla funkce volána Jak se inicializuje lokální statická proměnná? Co je to registrová proměnná? K čemu je registrová proměnná? Jak deklarovat ukazatel Ukazatel na cokoli Jak deklarovat konstantu Konstanta v jazyce C Konstanta v jazyce C Ukazatel na konstantu Konstantní ukazatel Konstantní ukazatel na konstantu Inicializace proměnné v deklaraci Nové jméno pro typ Deklarace ukazatele pomocí jména zavedeného deklarací typedef Deklarace jednorozměrného pole pojmenovaného typu Deklarace vícerozměrného pole Deklarace jednorozměrného pole ukazatelů Deklarace ukazatele na jednorozměrné pole Deklarace proměnné objektového typu s konstruktorem bez parametrů Deklarace proměnné objektového typu s konstruktorem s parametry Co je implicitní int Proměnné, které se mohou měnit z pozadí Označení typu 121 Ukazatele a pole Deklarace jednorozměrného pole s inicializací Jaké prvky má pole? Inicializace pole nulami Čárka na konci seznamu inicializátorů Známe inicializátory, neznáme počet prvků Kolik prvků má pole? 124

9 Obsah Inicializujeme jen některé prvky (jen C99) Pole s nekonstantním počtem prvků Pole objektového typu Pole objektového typu inicializované skalárními hodnotami Pole objektového typu inicializované instancemi Explicitní volání konstruktoru v inicializaci pole objektového typu Pole s nekonstantním počtem prvků (jen C99) Inicializace vícerozměrného pole První index v deklaraci vícerozměrného pole můžeme někdy vynechat Literál typu pole (jen C99) Přístup k prvkům pole Indexování je symetrické Pole se skoro vždy konvertuje na ukazatel Pole lze přiřadit ukazateli Používáme proměnnou, na kterou ukazuje ukazatel Ukazatel indexujeme jako pole Jak vytvořit ukazatel nikam Adresová aritmetika (aritmetika ukazatelů) Co znamená rovnost nebo nerovnost ukazatelů? Který prvek má vyšší index? Která složka struktury je definována dříve? Chceme s ukazatelem přejít na následující prvek pole Chceme s ukazatelem přejít na předcházející prvek pole Chceme s ukazatelem přejít o m prvků dál O kolik se liší indexy daných prvků? Překopírování obsahu jednorozměrného pole Překopírování obsahu jednorozměrného pole pomocí adresové aritmetiky Kopírování obsahu pole, když se zdrojové a cílové pole nepřekrývá Kopírování obsahu pole, když se zdrojové a cílové pole překrývá První nulový prvek v jednorozměrném poli pomocí adresové aritmetiky První nulový prvek v jednorozměrném poli pomocí indexování První záporný prvek ve dvourozměrném poli pomocí indexování Výpis všech záporných prvků ve dvourozměrném poli pomocí adresové aritmetiky Omezené (restringované) ukazatele v C Správa paměti Alokace jednoduché proměnné základního typu Alokace jednorozměrného pole pomocí funkce malloc() Alokace jednorozměrného pole s vynulováním 135

10 12 Obsah 247 Když malloc() nebo calloc() neuspěje Uvolnění paměti alokované pomocí malloc() nebo calloc() Zvětšení dynamicky alokovaného pole Zmenšení dynamicky alokovaného pole Když funkci realloc() předáme NULL Když realloc() neuspěje Alokace jednoduché proměnné základního typu v C Alokace jednoduché proměnné základního typu s inicializací Alokace instance objektového typu Alokace instance objektového typu inicializovaná konstruktorem s parametry Alokace instance objektového typu pomocí malloc() Uvolnění paměti jednoduché proměnné základního typu alokované pomocí new Uvolnění paměti instance objektového typu Alokace hrubé paměti pomocí new Uvolnění paměti alokované pomocí new bez volání destruktoru Když operátor new neuspěje Když nechceme, aby operátor new vyvolával výjimku Alokace instance objektového typu s přetíženým operátorem new Překladač nenašel globální new. Co se děje? Alokace instance objektového typu s přetíženým operátorem new pomocí globálního new Zrušení instance objektového typu s přetíženým operátorem delete globálním delete Alokace jednorozměrného pole základního typu pomocí new Alokace jednorozměrného pole objektového typu pomocí new Alokace pole objektového typu s přetíženým operátorem new Překladač nenašel při alokaci pole globální new. Co se děje? Alokace pole objektového typu s přetíženým operátorem new[] globálním new Zrušení pole objektového typu s přetíženým operátorem delete[] globálním delete[] Vyvolá-li konstruktor alokované instance výjimku Nemíchejme malloc() a new Alokace dvourozměrného pole v jazyce C Alokace dvourozměrného pole neobjektového typu pomocí new Uvolnění pole alokovaného pomocí new Zapomeneme-li hranaté závorky za delete 144 Reference Co je to reference? Deklarace reference Jak jsou reference implementovány? Hlavní omezení kladená na reference 145

11 Obsah Inicializace nekonstantní reference neobjektového typu Inicializace reference objektového typu Lze změnit odkazovanou proměnnou? Měníme hodnotu proměnné prostřednictvím reference Získáváme adresu odkazované proměnné Zjednodušení zápisu pomocí reference Chceme referenci inicializovat výrazem Reference na pole Reference na funkci Voláme odkazovanou funkci Reference jako složka objektového typu 148 Práce se znaky Znakové typy: v čem se liší C90, C99 a C Jakého typu je znakový literál Literál představující úzký netisknutelný znak Přehled řídicích posloupností Literál představující široký znak Co je to Unicode Co jsou vícebajtové znaky Převod širokého znaku na úzký Převod úzkého znaku na široký Lze široký znak reprezentovat jednobajtovým znakem? Máme znak. Je to číslice? (C) Máme znak. Je to číslice? (C++) Máme úzký znak. Je to písmeno? (C) Máme široký znak. Je to písmeno? (C) Máme znak. Je to písmeno? (C++) Jde o malé písmeno? (C) Jde o malé písmeno? (C++) Klasifikace úzkých znaků přehled Klasifikace znaků při jiném lokálním nastavení (C++) Převod znaků na malá písmena Převod znaků na malá písmena při jiném lokálním nastavení (C++) Převod znaků na velká písmena Převod znaků na velká písmena při jiném lokálním nastavení (C++) Převod mezi malými a velkými písmeny nemusí být jednoznačný Co jsou to trigrafy 158

12 14 Obsah Znakové řetězce (pole znaků) Hlavičkové soubory pro široké znaky Řetězcová konstanta Co je to řetězcová konstanta? Inicializace znakového pole řetězcem Když vynecháme počet prvků Spojování řetězcových konstant (všechny verze C a C++) Spojování řetězcových konstant (od C90 dále) Spojování řetězcových konstant vytvořených makry Speciální znaky v řetězcové konstantě Jak deklarovat ukazatel na řetězec Pozor na neinicializované ukazatele Inicializace pole řetězců Jak zjistit délku řetězce Jak přistupovat ke znakům řetězce Kopírování řetězců Kopírujeme nejvýše n znaků Kopírujeme pole znaků, která se překrývají Spojování řetězců První výskyt znaku v řetězci První výskyt znaku ze zadané množiny První výskyt podřetězce Rozklad řetězce na slova Kolik musíme projít znaků, než narazíme na zadaný znak? Lexikografické porovnávání řetězců Abecední porovnávání řetězců podle lokálních zvyklostí Čtení celého čísla z řetězce úzkých znaků Čtení celého čísla z řetězce širokých znaků Čtení reálného čísla z řetězce Převod řetězce na celočíselnou hodnotu Převod řetězce na číselnou hodnotu jiného typu než int Chceme vědět, kde převod na int skončil Chceme vědět, kde skončil převod na jiný celočíselný typ Chceme vědět, kde skončil převod na reálný typ Převod řetězce širokých znaků na číslo Převod z jiných číselných soustav Převedení čísla na řetězec úzkých znaků Převedení čísla na řetězec širokých znaků 170

13 Obsah Převod celého čísla na řetězec nestandardní řešení Další nestandardní funkce pro převod čísel na řetězec Zápis celého čísla v zadané soustavě (nestandardní řešení) Caesarova šifra (jednoduchá transformace řetězce) Převod úzkého řetězce na široký Převod širokého řetězce na úzký Převod znaků v řetězci na velká písmena Převod znaků v řetězci na malá písmena Transformace řetězce na místě 174 Znakové řetězce (typ basic_string<>) Třídy std::string a std::wstring a dokumentace k nim (C++) Třída string je kontejner ze STL Zápis řetězce do proudu Prázdná instance třídy string Inicializace instance typu string polem znaků Kolik znaků řetězec pojme? Zvětšujeme kapacitu řetězce Inicializace instance typu string opakovaným znakem Převod instance typu string na pole typu char Inicializace pole řetězců typu string Délka řetězce typu string Je řetězec prázdný? Přístup ke znakům řetězce Nový obsah instance typu string Nový obsah instance typu string: opakovaný znak Spojování řetězců typu string nebo wstring Spojujeme řetězce, aniž bychom je měnili Zkracujeme řetězec Prodlužujeme řetězec Kopírujeme řetězec do pole První výskyt znaku v řetězci První výskyt podřetězce První výskyt znaku z dané množiny První výskyt znaku, který nepatří do dané množiny Poslední výskyt znaku v řetězci Poslední výskyt znaku, který nepatří do dané množiny Bylo hledání úspěšné? Vložení nového znaku nebo podřetězce do řetězce 182

14 16 Obsah 394 Připojení znaku na konec řetězce Jak získat podřetězec Převod typu string na wstring Převod typu wstring na string Převod řetězce na velká nebo pouze malá písmena Kopie řetězce obsahující pouze velká nebo pouze malá písmena Lexikografické porovnávání řetězců Abecední porovnání řetězců Prohození obsahu dvou řetězců 186 Funkce a ukazatele na ně Co je to funkce? Parametry funkce Co může funkce vracet Co je kontrakt funkce Příklad kontraktu Princip jediné odpovědnosti Příklad příliš široké zodpovědnosti: funkce realloc() Definice a deklarace Prototyp funkce bez parametrů C vs. C Statické a externí funkce Vložené funkce (inline) Vložené funkce nejsou statické (C++) Vložené funkce v jazyce C Pravidlo jediné definice Předávání parametrů funkcím hodnotou Chceme změnit parametr: předávání ukazatele Chceme změnit parametr: předávání odkazem (jen C++) Ukazatelem, nebo odkazem? Předávání pole jako parametru funkce Funkce svůj parametr nemění: ukazatel na konstantu Konstantní reference jako parametr Ukazatel na funkci Konstanta typu ukazatele na funkci Volání funkce zadané ukazatelem Funkce jako parametr funkce Funkce vracející ukazatel Funkce vracející referenci (pouze C++) Na co si dát pozor při deklaraci referenční funkce 194

15 Obsah Funkce vracející řetězec Co by funkce neměla vracet Když má funkce příliš mnoho parametrů Když překladač nezná typy parametrů Funkce s proměnným počtem parametrů: výpustka Jak se předávají parametry na místě výpustky Jak pracujeme s parametry předanými výpustkou Příklad funkce s výpustkou Nepoužitý parametr (jen C++) Přetěžování funkcí (jen C++) Kdy přetěžovat funkce? Implicitní hodnoty parametrů Volání funkce s implicitními hodnotami parametrů Pravidla pro implicitní hodnoty parametrů Funkce podle Kernighana a Ritchieho Příklad funkce podle Kernighana a Ritchieho Co je implicitní int Funkce z jazyka C v C Funkce v C++ se jménem podle pravidel jazyka C Zacházení se jmény funkcí v C a v C++: pohled pod pokličku Příklad zdobení jmen v C Volací konvence (není součástí standardu) Standardní volací konvence jazyka C Další volací konvence Funkce zná své jméno (jen C99) 203 Preprocesor a makra Podmíněný překlad #elif místo #else #if Co může být v podmínce v direktivě #if? Test, zda je definováno podmínkové jméno Zkratky pro #if defined Kód překládaný jen v C Zdrojový soubor, který vyžaduje C Varování: direktiva #warn (C99) Platnost podmínkového jména Zrušení podmínkového jména Direktiva pro ozdobu: # Manifestační konstanta (makro bez parametrů) 208

16 18 Obsah 468 Proč používat manifestační konstanty Proč nepoužívat manifestační konstanty (v C++) Jak definovat makro s parametry Když se definice makra nevejde na jeden řádek Makro jako náhrada funkce Proč používat makra Proč nepoužívat makra, ale funkce inline Makra je třeba pečlivě závorkovat Parametr makra by se měl vyhodnocovat jen jednou Vytvoření řetězce v makru Makro by nemělo končit středníkem Spojování symbolů v makru Makra s proměnným počtem parametrů (jen C99) Jak zjistit verzi Unicode (C99) Datum a čas překladu Konvence pro pojmenování maker 213 Celá čísla Co všechno je celé číslo Celočíselné typy v C90 a v C Alternativní jména celočíselných typů Základní celočíselné typy v C Osmibajtová celá čísla v C90 a v C Zobrazení celých čísel bez znaménka v paměti Zobrazení celého čísla se znaménkem v paměti Malý nebo velký endián Rozsahy celočíselných typů Minimální rozsah celočíselných typů Je jeden celočíselný typ int a ty ostatní jsou od něj odvozeny Různé pohledy na celá čísla (C99) Celočíselné typy s přesně danou šířkou (C99) Celočíselné typy, které mají alespoň udanou šířku (C99) Nejrychlejší celočíselné typy, které mají alespoň udanou šířku (C99) Celočíselné typy, do nichž lze uložit ukazatel (C99) Celočíselné typy s největší možnou šířkou (C99) Jak zapsat celočíselný literál Přípony celočíselných literálů Jakého typu je desítková celočíselná konstanta? 220

17 Obsah Jakého typu je osmičková nebo šestnáctková celočíselná konstanta? Konstanta typu short nebo unsigned short Meze základních celočíselných typů v C Meze dalších celočíselných typů Meze celočíselných typů v C Co je to celočíselné přetečení Absolutní hodnota celého čísla Je číslo liché? Je k-tý bit proměnné nastaven? Nastavení k-tého bitu proměnné Počet nastavených bitů v proměnné Jak bezpečně sečíst dvě nezáporná čísla Nemíchejme typy se znaménkem a bez něj 224 Reálná čísla Datové typy pro reálná čísla Reprezentace a aritmetika reálných čísel Vyhovuje daný datový typ standardu IEEE 754? Reálný literál Typ reálného literálu Zjišťujeme rozsah reálných typů Zjišťujeme rozsah reálných typů v C Kolik platných desítkových cifer má daný typ? Kolik bitů mantisy má daný typ? Jaký je rozsah exponentu daného typu? Když k číslu a přičtu b, změní se číslo a? Jaké nejmenší číslo mohu přičíst k 1, abych dostal číslo jiné než 1? Jaké nejmenší číslo mohu přičíst k x, abych dostal číslo jiné než x? Když sečtu deset desetin, dostanu 1? Komutativní a asociativní zákon nemusí platit Porovnávání reálných čísel Rozumnější porovnání Odložená volba typu reálných čísel Známe strany a počítáme úhly v pravoúhlém trojúhelníku Když známe obě odvěsny, je lepší atan2() Jak pracovat s logaritmy Logaritmus o libovolném základu Mocnina a exponenciální funkce 231

18 20 Obsah 540 Goniometrické a hyperbolické funkce pro typ double Zaokrouhlování a absolutní hodnota pro typ double Běžné matematické funkce pro ostatní reálné typy Co je to strojové nekonečno Obsahuje tato implementace strojové nekonečno? Jak získat strojové nekonečno Když je výsledek matematické funkce nekonečný Co jsou to denormální čísla Podporuje tento typ denormální čísla? (C++) Je daný výsledek denormální, tedy méně přesný? Co je to NaN NaN mohou vracet i naše vlastní funkce Je to NaN? Klasifikace reálných čísel (C99) 235 Příkazy Potřebujeme několik příkazů na místě, kde smí být jeden Nechceme žádný příkaz na místě, kde má nějaký být Deklarace a příkazy v bloku v C90 a starších Deklarace a příkazy v bloku v C99 a v C Výraz jako příkaz Deklarace je v C++ příkaz Chceme provést akci, jen když je splněna podmínka Rozhodování mezi dvěma alternativami (příkaz if) Příkaz vnořený do if tvoří vždy blok Ke kterému if patří to else? V podmínce můžeme deklarovat proměnnou (jen C++) Větvení programu podle většího počtu hodnot (příkaz switch) Rozdělení příkazu switch na alternativy (příkaz break) Příkaz switch nebývá přehledný Náhrada příkazu switch polem Náhrada příkazu switch polymorfizmem Opakujeme skupinu příkazů: cyklus Tělo cyklu je blok Testujeme podmínku před vstupem do těla cyklu Zjišťujeme počet nenulových prvků pole (cyklus while) V podmínce příkazu while můžeme deklarovat proměnnou (jen C++) Čteme znaky z klávesnice až po zadaný znak (cyklus do-while) Jak funguje příkaz for 244

19 Obsah V inicializaci příkazu for můžeme deklarovat proměnnou (C99 a C++) Řetězec pozpátku (deklarace několika proměnných v inicializaci) Co můžeme použít jako podmínku Nekonečný cyklus Cyklus s podmínkou uprostřed (jak předčasně opustit cyklus) Nedokončený průchod cyklem (příkaz continue) Příkaz skoku (goto) Proč nepoužívat příkaz goto Tolerované použití příkazu goto Návrat z funkce (příkaz return) Příkaz asm (jen C++) Příkaz asm ve Visual C++ a v C++Builderu 248 Výrazy a operátory Každý operátor má svou prioritu Jaké existují úrovně priority Operátor má také asociativitu Neváhejme používat závorky Priorita a asociativita neurčuje pořadí vyhodnocování operandů Kdy je pořadí vyhodnocování pevně dáno Když použijeme operátor ++ nebo -- dvakrát na stejnou proměnnou Co jsou to sekvenční body Přiřazení je výraz Složené přiřazovací operátory Přiřazení vs. porovnání Přístup k zastíněné globální proměnné (C++) Zjišťujeme velikost proměnné nebo typu Operátor sizeof vyhodnocuje zpravidla překladač Volání funkce Nejdřív si připravíme data, pak vyhodnotíme podmínku (operátor čárka) Unární aritmetické operátory a typ výsledku Binární aritmetické operátory a typ výsledku v C++ a v C Binární aritmetické operátory a typ výsledku v C Jak se určí typ aritmetického výrazu Výsledky nás mohou překvapit Někdy neplatí asociativní ani komutativní zákon Jak na přetypování v jazyce C Jak na přetypování v C++ 257

20 22 Obsah Výčtové typy Výčtový typ pro dny v týdnu nejjednodušší deklarace Deklarace proměnné výčtového typu Proměnnou lze deklarovat v deklaraci typu Když nechceme v jazyce C psát enum Co jsou to výčtové konstanty Když nám implicitně přidělené hodnoty konstant nevyhovují Výčtovou konstantu můžeme definovat pomocí předchozí konstanty Výčtový typ pro příznaky Jména výčtových typů Čárka na konci seznamu konstant Výčtový typ v programu Výčtový typ v C a v C++: Hlavní rozdíl Jaké hodnoty může obsahovat proměnná výčtového typu Anonymní výčtový typ Výčtový typ jako náhrada konstanty 263 Struktury a unie Skupina proměnných jako jeden celek (struktura) Proměnné sdílejí místo v paměti Deklarace struktury Deklarace unie Jméno struktury nebo unie v C a v C Když nechceme v jazyce C psát struct nebo union Když použijeme typedef, můžeme jmenovku vynechat V deklaraci typu můžeme deklarovat proměnnou Když dvě struktury odkazují na sebe navzájem Přístup ke složkám struktur a unií Ukazatel na strukturu nebo unii Inicializace struktury Inicializace unie Inicializace struktury v C Inicializace unie v C Literál typu struktura nebo unie (jen C99) Uložení struktury v paměti, velikost struktury Jak zjistit velikost unie Práce s jednotlivými bity (bitová pole) Uložení bitových polí v paměti 271

21 Obsah K čemu je bitové pole Bitové pole nemusí mít jméno Bitové pole nulové šířky Co nelze s bitovými poli dělat Proměnné, které sdílejí místo v paměti (anonymní unie, jen C++) 272 Objektový typ a jeho deklarace Co je to třída Obecné a speciální pojmy a jejich model v programu Objektově orientovaný program S daty pracujeme zásadně pomocí metod Deklarace třídy bez předků V deklaraci typu lze deklarovat instance Příklad: třída cplx Vytvoření instance Použití složek Jak vyjádřit délku pole, které je složkou třídy Právo na přístup ke složkám Význam specifikací přístupu Výjimka z přístupových práv: přátelé Co je to rozhraní třídy Přístupové metody a jejich jména K čemu jsou dobré přístupové metody Datové složky instancí Metody instancí Jak metoda ví, se kterou instancí pracuje? Metody, které lze použít pro konstantní instance Datové složky třídy Deklarace datové složky třídy jako celku (statické datové složky) Použití statické datové složky mimo její třídu Statické konstantní složky Význačné hodnoty jako statické datové složky Metody třídy jako celku (statické metody) Statické metody nemají this Volání statické metody Také konstruktor je metoda třídy jako celku Metoda definovaná v těle je inline V metodě používáme složky i metody téže instance bez kvalifikace 284

22 24 Obsah 684 Ve statické metodě nelze používat datové složky instancí bez kvalifikace Typ jako složka třídy Vnořené a obklopující třídy jsou si cizí Třída je obor viditelnosti Vnořená třída je v oboru obklopující třídy Šablona jako složka třídy Některé metody vytvoří překladač sám Předběžná deklarace třídy Struktura jako objektový typ Unie jako objektový typ Třída definovaná v těle metody nebo funkce (lokální třída) Velikost instance Měnitelné složky konstant Deklarovaná, ale nedefinovaná metoda 288 Vytvoření instance Deklarace konstruktoru Omezení kladená na konstruktor Lze instanci inicializovat jako neobjektovou strukturu? Inicializační část konstruktoru Inicializační část konstruktoru není povinná V jakém pořadí inicializace probíhají Volání konstruktoru složky Konstantní a referenční složky Deklarace instance znamená volání konstruktoru Konstruktor nelze volat jako ostatní metody Překladač si může vytvořit konstruktor sám Kdy si překladač konstruktor nevytvoří Konstruktor bez parametrů, konstruktor s jedním parametrem Automatické konverze pomocí konstruktoru Konverzní konstruktor Explicitní konverze pomocí konstruktoru Když nechceme, aby konstruktor sloužil k implicitním konverzím Parametrem konstruktoru je délka pole Kopírovací konstruktor Explicitní vytvoření instance Optimalizace vracené hodnoty Konstruktor nemůže volat jiný konstruktor 295

23 Obsah Dva konstruktory sdílí část kódu: jak se neopakovat V několika metodách se opakují stejné úvodní a závěrečné operace (hlídka) Dynamická instance Explicitní volání konstruktoru pro dané místo Jak zakázat vytváření instancí všem Jak zakázat vytváření instancí klientskému programátorovi Co je to tovární metoda Konstruktor a výjimky Konstruktory základních typů (pseudokonstruktory) 298 Kopírování instancí Mělká a hluboká kopie Instance třídy obsahující dynamické pole Vytvoření nové instance, která je kopií existující instance Volání kopírovacího konstruktoru Inicializace instance výrazem jiného typu Když do hry s konstruktory vstoupí přístupová práva Překladač může optimalizovat Implicitní kopírovací konstruktor Kdy překladač nevytvoří kopírovací konstruktor Kopírovací přiřazovací operátor Typický problém, když instance obsahuje ukazatel na pole Implicitní přiřazovací operátor Kdy překladač nevytvoří přiřazovací operátor Přiřazovací operátor by měl vracet *this Třída vektor: příklad deklarace přiřazovacího operátoru Pole proměnné délky, chybná implementace Rovnost při přiřazování Ochrana proti přiřazení sebe sobě Jaké problémy mohou nastat, když kopírování hodnot může vyvolat výjimku Jak zvládnout možné výjimky při kopírování dat Příklad transakčního kopírování: vektor Jak zabránit kopírování Předávání parametrů objektových typů hodnotou Vracení výsledku funkce 307 Zánik instance Co je to destruktor 309

24 26 Obsah 754 Deklarace destruktoru Implicitní destruktor Kdy překladač nedokáže implicitně definovat destruktor Implicitní volání destruktoru Explicitní volání destruktoru Destruktor může být virtuální Omezení kladená na destruktor Proč by se z destruktoru neměly šířit výjimky Jak dlouho žije lokální automatická instance Jak dlouho žije globální instance Jak dlouho žije lokální statická instance Jak dlouho žije dynamická instance Jak dlouho žijí pomocné instance Jak dlouho žijí pomocné instance, které slouží k inicializaci referencí Jak dlouho žije pomocná proměnná vytvořená v inicializační části konstruktoru V jakém pořadí se volají destruktory složek Destruktory vestavěných typů (pseudodestruktory) Je destruktor volán v době hledání obsluhy výjimky? 313 Dědění a polymorfizmus Dědění neboli specializace Potomek může zastoupit předka Instance má několik typů Vícenásobné dědění Deklarace třídy s předky Kdo může být předkem Které metody se nedědí Volání konstruktoru předka Specifikátor přístupu ve specifikaci předků Třída je obor viditelnosti Zastínění zděděné metody Jak se dovoláme zastíněné metody Jak zabráníme zastínění metody předka Zveřejnění chráněné metody předka Přiřazení potomka předkovi ( ořezání dat ) Přiřazení ukazatele na potomka ukazateli na předka Časná a pozdní vazba Jak deklarovat metodu s pozdní vazbou 321

25 Obsah Jak překrýt virtuální metodu předka Kdy se uplatňuje pozdní vazba Volání virtuální metody předka Polymorfní třída Potřebujeme, aby třída byla polymorfní Kreslení grafického objektu: abstraktní metoda, abstraktní třída Deklarace abstraktní metody Omezení kladená na abstraktní třídy Čistě virtuální funkce může mít definici Potřebujeme, aby třída byla abstraktní Různé druhy metod ve společném předkovi Přetypování ukazatele na potomka na ukazatel na předka Konflikty jmen v odvozených třídách Pozdní vazba: pohled pod pokličku Volání virtuálních metod z konstruktorů a destruktorů Co se děje při konstrukci a destrukci instance polymorfní třídy Virtuální dědění Volání konstruktoru virtuálního předka Pořadí volání konstruktorů předků při virtuálním dědění Přetypování na potomka 330 Objektový návrh Třídy a jejich vztahy Co jsou to návrhové vzory Proč využívat skládání Co je to rozhraní Rozhraní v C Úsečka jako potomek bodu? Technické dědění Je dědění v tomto případě vhodné? Třídy vyhovují testu JE MÁ. Stačí to? Substituční princip Barbary Liskovové Přetížená třída Princip jediné zodpovědnosti Příliš mnoho tříd Když nechceme zveřejnit konstruktory (tovární metoda) Když nechceme, aby od naší třídy bylo možno odvodit potomka Chceme jedinou instanci 336

26 28 Obsah 826 Zásobník jako potomek seznamu? Jak použít adaptér Oddělujeme rozhraní od implementace Implementace stromu: schematický příklad mostu Nechceme být vázáni na jedinou implementaci Kontejner a alokace paměti Oddělujeme kontejner od algoritmu 339 Přetěžování operátorů Co je to přetěžování operátorů Které operátory nelze přetěžovat Operátory, které lze přetěžovat jen jako metody Operátory new a delete a ostatní operátory Přetěžování operátorů a srozumitelnost programu Přetěžování operátorů: základní vodítka Jak přetěžujeme binární operátory Jak přetěžujeme unární operátory Když překladač uvidí operátor Použití operátoru Třída cplx pro příklady Sčítání komplexních čísel Operátor jako metoda: Operandy nejsou rovnocenné Chceme, aby operandy byly rovnocenné Sčítání komplexních čísel bez deklarace friend Když je rychlost důležitá, definujeme další verzi operátoru Operátory ++ a Co je prefixovost a postfixovost operátorů ++ a Prefixový operátor ++ pro výčtový typ Postfixový operátor ++ pro výčtový typ Unární minus pro komplexní čísla Unární plus pro komplexní čísla Chovají se přetížené operátory stejně jako standardní operátory? Přiřazovací operátor nemusí jen kopírovat Jak je to s Někdy je lepší definovat a teprve pak Chceme indexovat instanci Přístup ke složkám komplexního čísla pomocí indexů Přístup ke složkám komplexní konstanty pomocí indexů 350

27 Obsah Operátor volání funkce Přístup k prvkům matice: volání funkce místo indexování Konverzní operátor (konverzní funkce) Konverze komplexního čísla na reálné Operátor -> Chytrý ukazatel Jak přetížit operátor new pro alokaci jedné instance Jak přetížit operátor new pro alokaci pole Globální new lze nahradit Jak přetížit operátor delete pro uvolnění jedné instance Jak přetížit operátor delete pro uvolnění pole instancí Globální delete lze nahradit Rozdíl mezi použitím operátoru a voláním operátorové funkce Alokace instance Alokace pole Použití třídního new a delete Použití globálního new a delete Když opravdu chceme nahradit globální new Náhrada globálního delete Operátor new s dodatečnými parametry Operátor delete s dodatečnými parametry 359 Zpracování chybových stavů Dlouhý skok v jazyce C Proměnná pro záznam stavu prostředí v místě návratu Místo, kam se chceme vrátit Vlastní dlouhý skok Co dlouhý skok umí a co ne Návratové hodnoty indikující chybu Jak používat proměnnou errno Samotná kontrola errno nestačí Co se vlastně stalo Co je to výjimka v C Pouze synchronní výjimky Třídy pro přenos informací o výjimce Terminologické zmatky Logické a běhové chyby Další třídy výjimek 365

28 30 Obsah 898 Vyvolání výjimky Šíření výjimky Úklid zásobníku Zachycení a ošetření výjimky Rozdělení kódu na normální běh a obsluhu chyb Pořadí obsluh Chceme zachytit všechny výjimky Obsluha se hledá podle typu, ale bez konverzí Bližší informace o výjimce Částečné ošetření výjimky Specifikace výjimek v hlavičce funkce Když se z funkce rozšíří neočekávaná výjimka Funkce, kterou volá unexpected() Když je celé tělo funkce jeden příkaz try Inicializační část konstruktoru a výjimky Výjimky, konstruktory a destruktory Specifikace výjimek a šablony Výjimka v konstruktoru složky Výjimka při alokaci dynamické instance Úniky paměti při výjimkách Automatické ukazatele Automatický ukazatel a výjimky 374 Jmenné prostory Deklarace jmenného prostoru Knihovny umísťujeme do jmenných prostorů Deklaraci jmenného prostoru můžeme rozdělit Přístup k součástem jmenných prostorů Uvnitř jmenného prostoru nemusíme kvalifikaci používat Jak se dovoláme proměnné, která neleží v prostoru jmen Uvnitř jmenného prostoru stačí deklarace Jiné jméno jmenného prostoru Když nechceme psát zdlouhavé kvalifikace (deklarace using) Zpřístupňujeme celý jmenný prostor Direktiva using je tranzitivní Také jména zpřístupněná deklarací using se direktivou using pošlou dál Anonymní jmenné prostory Skrýváme jméno a nechceme použít klíčové slovo static Jak překladač hledá volanou funkci nebo operátor 380

29 Obsah Princip rozhraní 381 Šablony Šablony jako lepší makra Definice šablony volné funkce Deklarace šablony volné funkce Formální parametry šablony Šablonové parametry šablony funkce Skutečné parametry šablony Implicitní vytvoření instance šablony funkce Šablona nenahrazuje prototyp Jak zavolat šablonovou funkci s parametry jiného typu Explicitní vytvoření instance šablony funkce Přetěžování šablon funkcí Specializace šablony volné funkce Ukazatel na instanci šablony Šablona objektového typu Použití šablonových parametrů šablony objektového typu Instance šablony objektového typu Implicitní hodnoty parametrů šablony Jeden parametr lze použít jako implicitní hodnotu dalšího Instance šablony jako parametr jiné šablony Šablony metod Šablona konstruktoru Statická datová složka Které součásti se vytvoří, když se vytvoří instance šablony třídy Slučování instancí Šablona jako složka třídy Šablona jako složka šablony třídy Co se podle vnořené šablony nevytvoří Dvojí čtení Jak napovědět, že jde o vnořený typ Jak napovědět, že jde o šablonu Různé instance šablony objektového typu jsou různé třídy Spřátelené funkce a šablony Šablony jako přátelé: příklad s lomenými závorkami Šablony jako přátelé: příklad (kvalifikovaná jména) Zvláštní případy šablony objektového typu Příklad primární šablony: obecná dvojice 396

30 32 Obsah 972 Příklad částečné specializace: dvojice ukazatelů Příklad explicitní specializace: dvojice ukazatelů typu void* Různé počáteční hodnoty statických složek pro různé parametry Nepodařené dosazení není chyba Šablona jako aserce Šablona jako nástroj pro zobrazení čísla na typ Šablona jako nástroj pro zobrazení typu na typ Překladač vypočte faktoriál 400 Práce s datovými typy K čemu je dynamická identifikace typů Jak použít operátor typeid Pro nepolymorfní typy určí operátor typeid statický typ Chceme-li dynamický typ, musí být třídy polymorfní Použití operátoru typeid k určení typu Kdy (ne)používat operátor typeid Nové přetypované operátory Jak se nové přetypované operátory používají Běžná přetypování Modifikátory const a volatile Podivná přetypování Jak funguje operátor dynamic_cast Přetypování ukazatele na předka na ukazatel potomka Přetypování reference na předka na referenci na potomka Patří skutečný typ instance mezi potomky jisté třídy? Adresa celého objektu Přetypování na sousední třídu Co když předáme ukazatel s hodnotou Přetypování na virtuálního potomka Co je to přístupný předek Co je to jednoznačný předek 411 Vstupní a výstupní operace v jazyce C Co je to datový proud Struktura FILE Standardní datové proudy v jazyce C Otevření datového proudu Binární a textový soubor, binární a textový režim Čtení a zápis v textovém režimu 415

31 Obsah Když se operace nepodaří (EOF, WEOF a wint_t) Uzavření proudu Orientace datového proudu na široké a úzké znaky Změna orientace proudu Neformátovaný zápis do souboru Neformátované čtení ze souboru Aktuální pozice v proudu Aktualizace souboru Přečtení jednoho bajtu (znaku) Zápis jednoho bajtu (znaku) Zápis znakového řetězce Čtení jednoho znaku ze standardního vstupu Zápis jednoho znaku do standardního výstupu Vrácení jednoho znaku do proudu Čtení přímo z klávesnice (nestandardní řešení) Čtení funkčních kláves Formátovaný zápis Formátovací řetězec funkce fprintf() Specifikace konverze pro funkci fprintf() Určení typu ve specifikaci konverze pro funkci fprintf() Specifikace konverze pro další celočíselné typy z C Specifikace velikosti pro funkci fprintf() Příznak pro funkci fprintf() Alternativní tvar výstupu (příznak #) Šířka vystupující hodnoty Přesnost ve specifikaci konverze pro funkci fprintf() Tisk tabulky funkce Formátovaný výstup na konzolu Zápis do znakového řetězce Výpis parametrů předaných na místě výpustky Když pracujeme se širokými znaky Formátované čtení Formátovací řetězec Specifikace konverze pro funkci fscanf() Specifikace typu pro funkci fscanf() Specifikace konverze pro další celočíselné typy v C Čteme celá čísla Čteme jeden znak pomocí fscanf() 431

Druhé vydání... 15. Příkaz switch... 19 Zatoulané else... 20

Druhé vydání... 15. Příkaz switch... 19 Zatoulané else... 20 O pastech a propastech................... 15 Druhé vydání.............................................. 15 Co v této knize je a co v ní není......................................... 15 Ukázky...........................................................

Více

1. Programování, typy programovacích jazyků, historie.

1. Programování, typy programovacích jazyků, historie. 1. Programování, typy programovacích jazyků, historie. třída Console metody Write, WriteLina, ReadLine, ResetColor vlastnosti ForegroundColor, Backgroundcolor třída Form objekt Label vlastnost Text význam

Více

2.4.11 Nerovnice s absolutní hodnotou

2.4.11 Nerovnice s absolutní hodnotou .. Nerovnice s absolutní hodnotou Předpoklady: 06, 09, 0 Pedagogická poznámka: Hlavním záměrem hodiny je, aby si studenti uvědomili, že se neučí nic nového. Pouze používají věci, které dávno znají, na

Více

M - Rovnice - lineární a s absolutní hodnotou

M - Rovnice - lineární a s absolutní hodnotou Rovnice a jejich ekvivalentní úpravy Co je rovnice Rovnice je matematický zápis rovnosti dvou výrazů. př.: x + 5 = 7x - M - Rovnice - lineární a s absolutní hodnotou Písmeno zapsané v rovnici nazýváme

Více

BlueJ a základy OOP. Programování II 1. cvičení Alena Buchalcevová

BlueJ a základy OOP. Programování II 1. cvičení Alena Buchalcevová BlueJ a základy OOP Programování II 1. cvičení Alena Buchalcevová Konzultační hodiny v ISu doc. Alena Buchalcevová Po 14:00-15:00 NAR 220 2 Cíle 1. cvičení pochopit pojmy: třída instance konstruktor metoda

Více

JAZYK C PRO MIKROKONTROLÉRY

JAZYK C PRO MIKROKONTROLÉRY JAZYK C PRO MIKROKONTROLÉRY Jazyk C pro mikrokontroléry Číslo DUM v digitálním archivu školy VY_32_INOVACE_10_03_01 Vytvořeno 07/2013 Materiál vysvětluje základní princip programování mikrokontrolérů v

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Plán předmětu Název předmětu: Školní rok: Ročník: Semestr: Typ předmětu: Rozsah předmětu: Počet kreditů: Přednášející: Cvičící: Cíl předmětu

Plán předmětu Název předmětu: Školní rok: Ročník: Semestr: Typ předmětu: Rozsah předmětu: Počet kreditů: Přednášející: Cvičící: Cíl předmětu Plán předmětu Název předmětu: Algoritmizace a programování (PAAPP) Školní rok: 2009/2010 Ročník: I Semestr: II. (letní) Typ předmětu: povinný Rozsah předmětu: 3 3 z, zk Počet kreditů: 6 Přednášející: RNDr.

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy

Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana (celkem 7) Polyadické - zobrazené mnohočlenem desítková soustava 3 2 532 = 5 + 3 + 2 + Číselné soustavy Číslice tvořící zápis čísla jsou vlastně

Více

Programování v jazyce C. Proces celkového sestavení programu ze zdrojového kódu, vývojové nástroje Linuxu

Programování v jazyce C. Proces celkového sestavení programu ze zdrojového kódu, vývojové nástroje Linuxu Programování v jazyce C Proces celkového sestavení programu ze zdrojového kódu, vývojové nástroje Linuxu Jan Schee, ÚF FPF SU Opava, 2012 Proces sestavování programu Proces sestavení programu Zdrojový

Více

MS WORD 2007 Styly a automatické vytvoření obsahu

MS WORD 2007 Styly a automatické vytvoření obsahu MS WORD 2007 Styly a automatické vytvoření obsahu Při formátování méně rozsáhlých textů se můžeme spokojit s formátováním použitím dílčích formátovacích funkcí. Tato činnost není sice nijak složitá, ale

Více

Principy překladačů. Architektury procesorů. Jakub Yaghob

Principy překladačů. Architektury procesorů. Jakub Yaghob Principy překladačů Architektury procesorů Jakub Yaghob Architektury procesorů Architektura procesoru představuje cílový jazyk Platí pro překladače do kódu konkrétního procesoru Ovlivňuje celý backend

Více

Sada 2 - MS Office, Excel

Sada 2 - MS Office, Excel S třední škola stavební Jihlava Sada 2 - MS Office, Excel 03. Úvod do Excelu 2007. Vkládání dat, vzorce Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Kvadratické rovnice pro učební obory

Kvadratické rovnice pro učební obory Variace 1 Kvadratické rovnice pro učební obory Autor: Mgr. Jaromír JUŘEK Kopírování a jkaékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Kvadratické

Více

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - operátor je speciální

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

16. února 2015, Brno Připravil: David Procházka

16. února 2015, Brno Připravil: David Procházka 16. února 2015, Brno Připravil: David Procházka Skrývání implementace Základy objektového návrhu Připomenutí návrhu použitelných tříd Strana 2 / 17 Obsah přednášky 1 Připomenutí návrhu použitelných tříd

Více

( ) 2.4.4 Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208

( ) 2.4.4 Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208 .. Kreslení grafů funkcí metodou dělení definičního oboru I Předpoklady: 01, 08 Opakování: Pokud jsme při řešení nerovnic potřebovali vynásobit nerovnici výrazem, nemohli jsme postupovat pro všechna čísla

Více

DUM 13 téma: Příkazy pro výběr

DUM 13 téma: Příkazy pro výběr DUM 13 téma: Příkazy pro výběr ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací oblast:

Více

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE Nové formy výuky s podporou ICT ve školách Libereckého kraje IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE Podrobný návod Autor: Mgr. Michal Stehlík IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE 1 Úvodem Tento

Více

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena

Více

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f.

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f. I. Funkce dvou a více reálných proměnných 5. Lokální extrémy. Budeme uvažovat funkci f = f(x 1, x 2,..., x n ), která je definovaná v otevřené množině G R n. Řekneme, že funkce f = f(x 1, x 2,..., x n

Více

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Informační

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

4.6.6 Složený sériový RLC obvod střídavého proudu

4.6.6 Složený sériový RLC obvod střídavého proudu 4.6.6 Složený sériový LC obvod střídavého proudu Předpoklady: 41, 4605 Minulá hodina: odpor i induktance omezují proud ve střídavém obvodu, nemůžeme je však sčítat normálně, ale musíme použít Pythagorovu

Více

Programování 4. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Programování 4. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Programování 4. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Stromy Reprezentace Binární vyhledávací

Více

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno Přednáška č. 9 Katedra ekonometrie FEM UO Brno Distribuční úlohy Budeme se zabývat 2 typy distribučních úloh dopravní úloha přiřazovací problém Dopravní úloha V dopravním problému se v typickém případě

Více

Třídy a objekty -příklady

Třídy a objekty -příklady Třídy a objekty -příklady doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Příklad 1 Kvadratická rovnice static void

Více

Mobilní aplikace pro ios

Mobilní aplikace pro ios Předběžná zadávací dokumentace k projektu: Mobilní aplikace pro ios Kontaktní osoba: Jan Makovec, makovec@ckstudio.cz Obsah Cíl projektu... 2 Obrazovky aplikace... 2 Základní prostředí aplikace... 2 Intro...

Více

V týmové spolupráci jsou komentáře nezbytností. V komentářích se může např. kolega vyjadřovat k textu, který jsme napsali atd.

V týmové spolupráci jsou komentáře nezbytností. V komentářích se může např. kolega vyjadřovat k textu, který jsme napsali atd. Týmová spolupráce Word 2010 Kapitola užitečné nástroje popisuje užitečné dovednosti, bez kterých se v kancelářské práci neobejdeme. Naučíme se poznávat, kdo, kdy a jakou změnu provedl v dokumentu. Změny

Více

Algoritmizace a programování

Algoritmizace a programování Pátek 4. ledna Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů.

Více

František Hudek. květen 2013. 6. - 7. ročník

František Hudek. květen 2013. 6. - 7. ročník VY_32_INOVACE_FH13_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek květen 2013

Více

Lokální a globální extrémy funkcí jedné reálné proměnné

Lokální a globální extrémy funkcí jedné reálné proměnné Lokální etrémy Globální etrémy Použití Lokální a globální etrémy funkcí jedné reálné proměnné Nezbytnou teorii naleznete Breviáři vyšší matematiky (odstavec 1.). Postup při hledání lokálních etrémů: Lokální

Více

3.2.4 Podobnost trojúhelníků II

3.2.4 Podobnost trojúhelníků II 3..4 odobnost trojúhelníků II ředpoklady: 33 ř. 1: Na obrázku jsou nakresleny podobné trojúhelníky. Zapiš jejich podobnost (aby bylo zřejmé, který vrchol prvního trojúhelníku odpovídá vrcholu druhého trojúhelníku).

Více

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

2.7.2 Mocninné funkce se záporným celým mocnitelem

2.7.2 Mocninné funkce se záporným celým mocnitelem .7. Mocninné funkce se záporným celým mocnitelem Předpoklady: 70 Mocninné funkce se záporným celým mocnitelem: znamená? 3 y = = = = 3 y y y 3 = ; = ; = ;.... Co to Pedagogická poznámka: Nechávám studenty,

Více

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY Po vytvoření nové společnosti je potřeba vytvořit nové uživatele. Tato volba je dostupná pouze pro administrátory uživatele TM s administrátorskými právy. Tento

Více

{ } 9.1.9 Kombinace II. Předpoklady: 9108. =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce.

{ } 9.1.9 Kombinace II. Předpoklady: 9108. =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce. 9.1.9 Kombinace II Předpoklady: 9108 Př. 1: Je dána pěti prvková množina: M { a; b; c; d; e} =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce. Vypisujeme

Více

Kvadratické rovnice pro studijní obory

Kvadratické rovnice pro studijní obory Variace 1 Kvadratické rovnice pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Kvadratické

Více

Escort Servis Night Prague

Escort Servis Night Prague Escort Servis Night Prague Escortní služby po celé Praze Vize projektu Vypracovali: Jiří Blažek, Cyril Filcík, Michal Dvořák Obsah Cíl projektu...2 Zainteresované instituce a osoby...2 Zadavatel...2 Uživatelé

Více

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou .8.9 Parametrické rovnice a nerovnice s absolutní hodnotou Předpoklady: 0,, 806 Pedagogická poznámka: Opět si napíšeme na začátku hodiny na tabuli jednotlivé kroky postupu při řešení rovnic (nerovnic)

Více

Virtuální přístroje. Použití grafického programování v LabVIEW. Ing. Pavel Mlejnek

Virtuální přístroje. Použití grafického programování v LabVIEW. Ing. Pavel Mlejnek Virtuální přístroje Použití grafického programování v LabVIEW Ing. Pavel Mlejnek mlejnp1@fel.cvut.cz Grafické programování LabVIEW Základní informace Principy grafického programování Vývojové prostředí

Více

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK Autor: Josef Fröhlich Verze dokumentu: 1.1 Datum vzniku: 4.4.2006 Datum poslední úpravy: 10.4.2006 Liberecká IS, a.s.;jablonecká 41; 460 01 Liberec V; IČ: 25450131;

Více

( ) ( ) ( ) 2 ( ) 2.7.16 Rovnice s neznámou pod odmocninou II. Předpoklady: 2715

( ) ( ) ( ) 2 ( ) 2.7.16 Rovnice s neznámou pod odmocninou II. Předpoklady: 2715 .7.6 Rovnice s neznámou pod odmocninou II Předpoklady: 75 Př. : Vyřeš rovnici y + + y = 4 y + + y = 4 / ( y + + y ) = ( 4) y + + 4 y + y + 4 y = 6 5y + 4 y + y = 8 5y + 4 y + y = 8 - v tomto stavu nemůžeme

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_33_12 Škola Střední průmyslová škola Zlín Název projektu, reg. č. Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávací oblast Vzdělávání v informačních a komunikačních

Více

( ) 2.5.7 Neúplné kvadratické rovnice. Předpoklady: 020501

( ) 2.5.7 Neúplné kvadratické rovnice. Předpoklady: 020501 ..7 Neúplné kvadratické rovnice Předpoklady: Pedagogická poznámka: Tato hodina patří mezi vzácné výjimky, kdy naprostá většina studentů skončí více než pět minut před zvoněním. Nechávám je dělat něco jiného

Více

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

Více

Název: VY_32_INOVACE_PG3309 Booleovské objekty ve 3DS Max - sčítání a odčítání objektů

Název: VY_32_INOVACE_PG3309 Booleovské objekty ve 3DS Max - sčítání a odčítání objektů Název: VY_32_INOVCE_PG3309 ooleovské objekty ve 3DS Max - sčítání a odčítání objektů utor: Mgr. Tomáš Javorský Datum vytvoření: 05 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika,

Více

Grafy a hromadná korespondence Word 2007 - egon. Tvorba grafů, jejich úprava a základy hromadné korespondence

Grafy a hromadná korespondence Word 2007 - egon. Tvorba grafů, jejich úprava a základy hromadné korespondence Grafy a hromadná korespondence Word 2007 - egon Tvorba grafů, jejich úprava a základy hromadné korespondence Jan Málek 30.7.2010 0 Grafy Klikneme na místo, kam chceme graf umístit. Přejdeme na kartu Vložení,

Více

Sekvenční logické obvody

Sekvenční logické obvody Sekvenční logické obvody 7.přednáška Sekvenční obvod Pokud hodnoty výstupů logického obvodu závisí nejen na okamžitých hodnotách vstupů, ale i na vnitřním stavu obvodu, logický obvod se nazývá sekvenční.

Více

Pracovní ukázka vstupního testu DSA 1.

Pracovní ukázka vstupního testu DSA 1. Pracovní ukázka vstupního testu DSA 1. Celkem můžete získat 6 bodů, k úspěšnému vyřešení testu je nutno získat alespoň 4 body. V úloze 1. získáte 1 bod za každou správně určenou hodnotu. V úlohách 2. a

Více

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27 cs-cz Poznámky k verzi Scania Diagnos & Programmer 3, verze 2.27 Verze 2.27 nahrazuje verzi 2.26 programu Scania Diagnos & Programmer 3 a podporuje systémy ve vozidlech řady P, G, R a T a řady F, K a N

Více

Tabulky Word 2007 - egon. Tabulky, jejich formátování, úprava, změna velikosti

Tabulky Word 2007 - egon. Tabulky, jejich formátování, úprava, změna velikosti Tabulky Word 2007 - egon Tabulky, jejich formátování, úprava, změna velikosti Jan Málek 26.7.2010 Tabulky Tabulky nám pomáhají v pochopení, jak mezi sebou souvisí určité informace, obohacují vzhled dokumentu

Více

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011). Jazyk C++ 1 Blok 1 Úvod do programovacího jazyka C++ Studijní cíl První blok kurzu je věnován úvodu do problematiky programovacího jazyka C++. V bloku budou rozebrány historické souvislosti programovacích

Více

Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS POWERPOINT 2010

Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS POWERPOINT 2010 Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS POWERPOINT 2010 Novinky v PowerPoint 2010 Správa souborů v novém zobrazení Backstage Automatické ukládání verzí prezentace Uspořádání snímků

Více

Vztah mezi dvěma čísly, které se rovnají, se nazývá rovnost, jako například : ( 2) 3 = 8 4 = 2 ; 16 = 4 ; 1 = 1 a podobně. 2

Vztah mezi dvěma čísly, které se rovnají, se nazývá rovnost, jako například : ( 2) 3 = 8 4 = 2 ; 16 = 4 ; 1 = 1 a podobně. 2 Lineární rovnice o jedné neznámé O rovnicích obecně Vztah mezi dvěma čísly, které se rovnají, se nazývá rovnost, jako například : ( ) 8 ; 6 ; a podobně. ; Na rozdíl od rovností obsahuje rovnice kromě čísel

Více

Popis a funkce klávesnice Gama originální anglický manuál je nedílnou součástí tohoto českého překladu

Popis a funkce klávesnice Gama originální anglický manuál je nedílnou součástí tohoto českého překladu Popis a funkce klávesnice Gama originální anglický manuál je nedílnou součástí tohoto českého překladu Klávesnice Gama používá nejnovější mikroprocesorovou technologii k otevírání dveří, ovládání zabezpečovacích

Více

1.3.1 Kruhový pohyb. Předpoklady: 1105

1.3.1 Kruhový pohyb. Předpoklady: 1105 .. Kruhový pohyb Předpoklady: 05 Předměty kolem nás se pohybují různými způsoby. Nejde pouze o přímočaré nebo křivočaré posuvné pohyby. Velmi často se předměty otáčí (a některé se přitom pohybují zároveň

Více

Signály Mgr. Josef Horálek

Signály Mgr. Josef Horálek Signály Mgr. Josef Horálek Signály = Jedná se o nejstarší metody komunikace mezi procesem a jádrem, a mezi samotnými procesy. = Princip: = Prosec vykonává určitou činnost přijde mu signál přeruší původní

Více

Jazyk C++ II. Výjimky

Jazyk C++ II. Výjimky Jazyk C++ II Výjimky AR 2013/2014 Jazyk C++ II Funkce abort Dříve byl obvyklý způsob zavolat metodu abort(). Metoda provádí okamžitě: Vyprázdnění vyrovnávací paměti, Ukončení celého programu, Vrátí číslo

Více

Úložiště elektronických dokumentů GORDIC - WSDMS

Úložiště elektronických dokumentů GORDIC - WSDMS Úložiště elektronických dokumentů GORDIC - WSDMS pro verzi 3.66, verze dokumentu 1.0 GINIS Gordic spol. s r. o., Erbenova 4, Jihlava Copyright 2011, Všechna práva vyhrazena 1 Úložiště elektronických dokumentů

Více

Systém zvukové signalizace a spouštění motoru na základě stavu světla

Systém zvukové signalizace a spouštění motoru na základě stavu světla Systém zvukové signalizace a spouštění motoru na základě stavu světla vzorová úloha (SŠ) Jméno Třída.. Datum.. 1. Teoretický úvod Cílem této úlohy je sestavit systém sledující stav světla, které bude vyhodnocováno

Více

INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY

INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY FUNKCÍ DVOU PROMĚNNÝCH Robert Mařík 2. října 2009 Obsah z = x 4 +y 4 4xy + 30..................... 3 z = x 2 y 2 x 2 y 2........................ 18 z = y ln(x 2 +y)..........................

Více

Sada 2 Microsoft Word 2007

Sada 2 Microsoft Word 2007 S třední škola stavební Jihlava Sada 2 Microsoft Word 2007 04. Text v záhlaví, zápatí, číslování stránek Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Tvorba trendové funkce a extrapolace pro roční časové řady

Tvorba trendové funkce a extrapolace pro roční časové řady Tvorba trendové funkce a extrapolace pro roční časové řady Příklad: Základem pro analýzu je časová řada živě narozených mezi lety 1970 a 2005. Prvním úkolem je vybrat vhodnou trendovou funkci pro vystižení

Více

Kalendář je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně.

Kalendář je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně. III. je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně. V levé spodní části okna Outlook si stisknutím tlačítka zobrazíme

Více

Klientský formát POHLEDÁVKY platný od 23. 11. 2012

Klientský formát POHLEDÁVKY platný od 23. 11. 2012 Klientský formát POHLEDÁVKY platný od 23. 11. 2012 1/5 1 Úvod 1.1 Účel dokumentu Účelem tohoto dokumentu je popis formátu POHLEDAVKA a požadovaných validací při IMPORTu dat ve vazbě na návazné účetní SW

Více

Každý jednotlivý záznam datového souboru (tzn. řádek) musí být ukončen koncovým znakem záznamu CR + LF.

Každý jednotlivý záznam datového souboru (tzn. řádek) musí být ukončen koncovým znakem záznamu CR + LF. Stránka 1 z 6 ABO formát Technický popis struktury formátu souboru pro načtení tuzemských platebních příkazů k úhradě v CZK do internetového bankovnictví. Přípona souboru je vždy *.KPC Soubor musí obsahovat

Více

Modul účetnictví: Kontrolní výkaz DPH (SK) Podklady ke školení

Modul účetnictví: Kontrolní výkaz DPH (SK) Podklady ke školení Modul účetnictví: Kontrolní výkaz DPH (SK) Podklady ke školení 7.10.2015 Denková Barbora, DiS. Datum tisku 7.10.2015 2 Modul účetnictví: Kontrolní výkaz DPH (SK) Modul u c etnictví : Kontrolní vý kaz DPH

Více

Pohyb v listu. Řady a posloupnosti

Pohyb v listu. Řady a posloupnosti Pohyb v listu. Řady a posloupnosti EU peníze středním školám Didaktický učební materiál Anotace Označení DUMU: VY_32_INOVACE_IT4.05 Předmět: IVT Tematická oblast: Microsoft Office 2007 Autor: Ing. Vladimír

Více

= musíme dát pozor na: jmenovatel 2a, zda je a = 0 výraz pod odmocninou, zda je > 0, < 0, = 0 (pak je jediný kořen)

= musíme dát pozor na: jmenovatel 2a, zda je a = 0 výraz pod odmocninou, zda je > 0, < 0, = 0 (pak je jediný kořen) .8.7 Kvadratické rovnice s parametrem Předpoklady: 507, 803 Pedagogická poznámka: Na první pohled asi každého zarazí, že takřka celá hodina je psána jako příklady a studenti by ji měli vypracovat samostatně.

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

Aritmetika s didaktikou I.

Aritmetika s didaktikou I. Katedra matematiky PF UJEP Aritmetika s didaktikou I. KM1 / 0001 Přednáška 03 Operace v množině, vlastnosti binárních operací O čem budeme hovořit: zavedení pojmu operace binární, unární a další operace

Více

Windows 10 (6. třída)

Windows 10 (6. třída) Windows 10 (6. třída) Okno spuštěné aplikace: takto vypadá okno aplikace Malování - panel nástrojů Rychlý přístup Titulkový pruh se jménem souboru (Bez názvu) tlačka pro minimalizaci, obnovení z maxima

Více

Ministerstvo pro místní rozvoj. podprogram 117 513

Ministerstvo pro místní rozvoj. podprogram 117 513 Pokyny pro vyplnění elektronické žádosti podprogram 117 513 Podpora výstavby technické infrastruktury Elektronická žádost je umístěna na internetové adrese http://www3.mmr.cz/zad a lze na ni vstoupit i

Více

EXPONENCIÁLNÍ A LOGARITMICKÁ FUNKCE

EXPONENCIÁLNÍ A LOGARITMICKÁ FUNKCE Projekt ŠABLONY NA GVM Gymnázium Velké Meziříčí registrační číslo projektu: CZ.1.07/1.5.00/34.0948 IV-2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol EXPONENCIÁLNÍ

Více

Novinky v programu Účtárna 2.09

Novinky v programu Účtárna 2.09 Novinky v programu Účtárna 2.09 Podpora pro Kontrolní hlášení Popis: Program obsahuje podporu pro plátce DPH, pro něž platí od 1.1.2016 nová legislativní povinnost Kontrolní hlášení. V knihách prvotních

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

1. Kruh, kružnice. Mezi poloměrem a průměrem kružnice platí vztah : d = 2. r. Zapíšeme k ( S ; r ) Čteme kružnice k je určena středem S a poloměrem r.

1. Kruh, kružnice. Mezi poloměrem a průměrem kružnice platí vztah : d = 2. r. Zapíšeme k ( S ; r ) Čteme kružnice k je určena středem S a poloměrem r. Kruh, kružnice, válec 1. Kruh, kružnice 1.1. Základní pojmy Kružnice je množina bodů mající od daného bodu stejnou vzdálenost. Daný bod označujeme jako střed kružnice. Stejnou vzdálenost nazýváme poloměr

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 1: Hello World, překlad programu, funkce Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 1: Hello World, překlad programu, funkce Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 1: Hello World, překlad programu, funkce Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 První program: Hello World 2 Struktura programu

Více

Klientský portál leasing24.cz. KLIENTSKÝ PORTÁL 24 NÁVOD NA PŘIHLÁŠENÍ A REGISTRACI UŽIVATELE Leasing24.cz. Stránka 1 z 15

Klientský portál leasing24.cz. KLIENTSKÝ PORTÁL 24 NÁVOD NA PŘIHLÁŠENÍ A REGISTRACI UŽIVATELE Leasing24.cz. Stránka 1 z 15 KLIENTSKÝ PORTÁL 24 NÁVOD NA PŘIHLÁŠENÍ A REGISTRACI UŽIVATELE Leasing24.cz Stránka 1 z 15 OBSAH O klientském portálu... 3 Registrace klienta... 4 K první registraci budete potřebovat... 5 Registrace prostřednictvím

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Dynamické datové struktury 1.1 Příklad:

Více

4.2.7 Voltampérová charakteristika rezistoru a žárovky

4.2.7 Voltampérová charakteristika rezistoru a žárovky 4.2.7 Voltampérová charakteristika rezistoru a žárovky Předpoklady: 4205 Pedagogická poznámka: Tuto hodinu učím jako běžnou jednohodinovku s celou třídou. Některé dvojice stihnou naměřit více odporů. Voltampérová

Více

Manuál TimNet Boiler

Manuál TimNet Boiler Manuál TimNet Boiler Detailní popis: Ovládání teploty užitkové vody v bojleru zajišťuje termostatický modul. Pomocí něj docílíte, aby byla voda v bojleru nahřáta na přesně stanovenou požadovanou teplotu.

Více

Programování II 1. přednáška. Alena Buchalcevová

Programování II 1. přednáška. Alena Buchalcevová Programování II 1. přednáška Alena Buchalcevová Cíle kurzu Seznámit se s principy objektově orientovaného programování v jazyce Java Základní seznámení s objekty Třídy a instance Volání metod, datové atributy

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

Více

Soustavy lineárních rovnic

Soustavy lineárních rovnic 1 Soustavy lineárních rovnic Příklad: Uvažujme jednoduchý příklad soustavy dvou lineárních rovnic o dvou neznámých x, y: x + 2y = 5 4x + y = 6 Ze střední školy známe několik metod, jak takové soustavy

Více

1.1.1 Kvadratické rovnice (dosazení do vzorce) I

1.1.1 Kvadratické rovnice (dosazení do vzorce) I .. Kvadratické rovnice (dosazení do vzorce) I Předpoklady: základní početní operace Rovnicí se nazývá vztah rovnosti mezi dvěma výrazy obsahujícími jednu nebo více neznámých. V této kapitole se budeme

Více

Allegro 1.92 release (1.3.2016 od 2.2.2016)

Allegro 1.92 release (1.3.2016 od 2.2.2016) Allegro 1.92 release (1.3.2016 od 2.2.2016) Symbol označuje nové aplikace Účetnictví Společnosti Přednastavení textů obchodních dokladů bylo optimalizováno pro vyšší rychlost načítání. Byla doplněna možnost

Více

Microsoft Office. Word styly

Microsoft Office. Word styly Microsoft Office Word styly Karel Dvořák 2011 Styly Používání stylů v textovém editoru přináší několik nesporných výhod. Je to zejména jednoduchá změna vzhledu celého dokumentu. Předem připravené styly

Více

Využití EduBase ve výuce 2

Využití EduBase ve výuce 2 B.I.B.S., a. s. Využití EduBase ve výuce 2 Projekt Vzdělávání pedagogů v prostředí cloudu reg. č. CZ.1.07/1.3.00/51.0011 Mgr. Jitka Kominácká, Ph.D. a kol. 2015 1 Obsah 1 Obsah... 2 2 Úvod... 3 3 Aktivita:

Více

KIV/ZI Základy informatiky. MS Excel maticové funkce a souhrny

KIV/ZI Základy informatiky. MS Excel maticové funkce a souhrny KIV/ZI Základy informatiky MS Excel maticové funkce a souhrny cvičící: Michal Nykl zimní semestr 2012 MS Excel matice (úvod) Vektor: (1D) v = [1, 2, 3, 5, 8, 13] Např.: matice sousednosti Matice: (2D)

Více

Popis připojení elektroměru k modulům SDS Micro, Macro a TTC.

Popis připojení elektroměru k modulům SDS Micro, Macro a TTC. Popis připojení elektroměru k modulům SDS Micro, Macro a TTC. V tomhle případě předpokládáme, že modul SDS je již zapojen do sítě a zprovozněn. První zapojení a nastavení modulů SDS najdete v návodech

Více

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu

Více

Programování v C++ 1, 5. cvičení

Programování v C++ 1, 5. cvičení Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

Více

Syntaxí řízený překlad

Syntaxí řízený překlad Překlad Syntaxí řízený překlad Miroslav Beneš Dušan Kolář Definice: Překlad je relace TRAN: L 1 -> L 2 L 1 Σ* Σ - vstupní abeceda L 2 * - výstupní abeceda L 1 jazyk infixových výrazů L 2 jazyk postfixových

Více

DUM 16 téma: Dávkové soubory

DUM 16 téma: Dávkové soubory DUM 16 téma: Dávkové soubory ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10Algoritmizace a programování určeno pro: 2-3.ročník vzdělávací obor: vzdělávací oblast: číslo projektu:

Více