Obsah Předmluva Zpětná vazba od čtenářů
14
Zdrojové kódy ke knize
15
Errata
15
KAPITOLA 1 Úvod do programování v jazyce C++
17
Základní pojmy Proměnné a konstanty Typy příkazů
17 18 18
IDE – integrované vývojové prostředí IDE Dev-C++ Stažení a instalace Dev-C++
19 19 19
První program Klíčové položky nabídky Překlad programu Stručné vysvětlení zápisu programu
25 27 28 30
Pár zajímavostí Komentáře neboli poznámky Pomocné nástroje na Internetu
31 31 31
Rozdělení základních datových typů
31
KAPITOLA 2 Celočíselné datové typy
K2237_sazba.indd 3
13
33
Celá čísla se znaménkem a bez znaménka Celá čísla bez znaménka Celá čísla se znaménkem Charakteristiky celočíselných datových typů
33 34 35 35
Základní vstupně/výstupní operace Základní výstupní operace Základní vstupní operace
36 36 40
27.11.2015 12:06:37
Obsah
Pokročilejší operace s proměnnými a proudy Deklarace proměnné Výstupní manipulátory dec, hex, oct
40 40 41
Aritmetické operace s celými čísly Základní aritmetické operátory Unární aritmetické operátory Priorita a asociativita
42 42 43 44
Zadávání číselných literálů v různých soustavách
45
KAPITOLA 3 Datové typy pro reálná čísla Vlastnosti datových typů pro reálná čísla
47
Vstupně/výstupní operace z pohledu reálných čísel
49
Aritmetické operace s reálnými čísly Přípony pro rozlišení literálů reálných čísel
51 52
Implicitní a explicitní typové konverze Implicitní typové konverze Možné problémy implicitních převodů Když implicitní převod nestačí Explicitní typová konverze
52 52 54 54 55
Priorita a asociativita dosud probraných operátorů
56
KAPITOLA 4 Větvení programu
K2237_sazba.indd 4
47
59
Konstrukce logických výrazů Typ bool Relační operátory (operátory pro porovnání) Logické operátory Priorita a asociativita
59 59 59 60 61
Vývojové diagramy Příklad
62 62
Podmíněný příkaz if Základní varianta (bez větve při nesplnění podmínky) Varianta s příkazy v obou větvích Varianta s další podmínkou v záporné větvi
63 63 64 64
Používání bloků
65
27.11.2015 12:06:37
Obsah
Složitější větvení
66
Podmíněný příkaz switch
68
KAPITOLA 5 Cykly Cyklus while – cyklus s podmínkou na začátku PROG_01 – výpis řady čísel
71 72
Cyklus do..while – cyklus s podmínkou na konci PROG_02 – výpis řady čísel pomocí cyklu do..while Ošetření chybného zadání z klávesnice
73 73 74
Cyklus for – cyklus s určeným počtem opakování PROG_04 – výpis řady čísel pomocí cyklu for
77 78
Break – předčasné ukončení cyklu
79
Continue – vynechání jednoho kroku cyklu
80
KAPITOLA 6 Pole
83
Deklarace pole Vlastnosti polí v jazyce C++
83 84
Inicializace prvků pole
84
Základní operace s poli
85
Konstanty
86
Příklady Základní operace s jednorozměrným polem Základní operace s „dvourozměrným“ polem
87 87 89
Míříme k funkcím!
90
KAPITOLA 7 Funkce
K2237_sazba.indd 5
71
91
Základy používání funkcí Výhody používání funkcí: Obecný zápis funkce
91 91 91
Předávání parametrů hodnotou
92
Návratová hodnota Typ void
93 93
27.11.2015 12:06:37
Obsah
Příklady Funkce min Funkce pro práci s poli
94 94 95
Dopředná deklarace funkce
97
Základní knihovní funkce jazyka Matematické funkce Funkce pro práci se znaky Další užitečné funkce
99 99 100 100
Globální a lokální data
100
KAPITOLA 8 Datový typ ukazatel Deklarace proměnné typu ukazatel
103
Reference proměnné
103
Dereference ukazatele
104
Další informace k ukazatelům Ukazatel void* Hodnota NULL Velikost ukazatele Ukazatel na ukazatel Nové operátory a jejich priorita a asociativita
106 106 106 106 106 107
Dynamická alokace paměti Operátor new Operátor delete Příklad
107 108 108 108
KAPITOLA 9 Používání ukazatelů
K2237_sazba.indd 6
103
111
Předávání parametrů funkce přes ukazatel – výstupní parametry
111
Předávání parametrů funkce odkazem – výstupní parametry podruhé Deklarace proměnné typu odkaz (reference)
112 112
Ukazatelová aritmetika Přetypování ukazatele na logickou hodnotu Přetypování ukazatele na celé číslo
114 115 115
Souvislost ukazatele a pole
116
Problémy s používáním polí ve funkcích
117
27.11.2015 12:06:37
Obsah
KAPITOLA 10 Znaky Datový typ char
121
Funkce pro práci se znaky
123
Vstup a výstup znaků Použití funkce system Vstup znaků přes vstupní proud cin pomocí extraktoru Vstup znaků přes vstupní proud cin pomocí metody get Vstup znaků pomocí funkcí z knihovny conio.h
126 126 127 129 130
KAPITOLA 11 Řetězce
133
Datový typ char* Řetězcové literály Deklarace spojená s inicializací Operace
133 134 134 134
Funkce pro práci s řetězci
138
Vstup a výstup řetězců Vstup řetězců Výstup řetězců
142 142 143
Objektová podpora řetězců
144
KAPITOLA 12 Odvozené datové typy
K2237_sazba.indd 7
121
145
Definice nového datového typu
145
Přehled datových typů
145
Datový typ enum – výčet Další vlastnosti výčtu:
146 147
Datový typ struct – sktruktura Další vlastnosti struktury:
147 148
Datový typ union – sjednocení (unie)
151
Datový typ bitové pole
154
Datový typ class – třída
156
27.11.2015 12:06:37
Obsah
KAPITOLA 13 Operátory Rozdělení operátorů Rozdělení operátorů podle počtu operandů Rozdělení operátorů podle typu operace
157 157 158
Ternární operátor
158
Bitové operátory Bitová negace ~ Bitový součet | Bitový součin & Výlučný bitový součet ^ Posuv vlevo << Posuv vpravo >> Příklad použití
158 158 159 159 159 160 160 160
Operátory přiřazení
161
Operátor čárka (operátor zapomenutí)
162
Souhrnná tabulka priority a asociativity operátorů
163
Přetěžování operátorů
163
KAPITOLA 14 Direktivy, paměťové třídy, modulární programování
K2237_sazba.indd 8
157
165
Direktivy (příkazy preprocesoru) #include (česky zahrnout) #define (česky definovat) #if, #else, #elif, #ifdef, #ifndef, #endif (řízení překladu) #pragma pack (zarovnání)
165 165 166 167 167
Paměťové třídy Auto (automatická proměnná) Register (registrová proměnná) Static (statická proměnná) Příklad Extern (externí vnější proměnná)
168 168 169 170 170 171
Modulární programování Používané pojmy: Příklad
171 172 172
27.11.2015 12:06:37
Obsah
KAPITOLA 15 Přetížení funkcí a implicitní parametry funkcí
177
Přetížení funkcí Přetížení funkce pomocí typů parametrů Přetížení funkce pomocí počtu parametrů
177 177 179
Implicitní parametry funkcí Dopředná deklarace a implicitní parametry funkce
180 182
KAPITOLA 16 Základy objektově orientovaného programování
183
Definice třídy Třída TClovek – 1. varianta (základní)
184 185
Problematika zapouzdření a inline metody Třída TClovek – 2. varianta (zapouzdření a inline metody)
188 188
Konstruktory Třída TClovek – 3. varianta (s parametrickým konstruktorem) Jak funguje standardní kopírovací konstruktor
190 191 192
Destruktor Třída TClovek – závěrečná varianta
193 194
Dědičnost – základní informace Krátký příklad na vysvětlení základů dědičnosti Změna přístupových úrovní při dědění
198 199 202
KAPITOLA 17 Přetěžování operátorů, výjimky Přetěžování operátorů Přetížení operátoru přiřazení Přetížení insertoru
203 203 205
Výjimky Výjimka je třída aneb hierarchie standardních výjimek Syntaxe Příklad – vylepšení třídy TClovek
207 208 208 209
KAPITOLA 18 Proudová knihovna a práce se soubory Hierarchie proudů
K2237_sazba.indd 9
203
213 213
27.11.2015 12:06:37
Obsah
Standardně deklarované proudy
213
Metody proudů ios, istream a ostream
214
Souborové proudy Otevření souboru Zavření souboru Test úspěšnosti operace
216 217 217 218
Příklady PROG_01 – Zápis čísel do souboru PROG_02 – Čtení čísel ze souboru PROG_03 – Práce s binárním souborem
218 218 220 221
KAPITOLA 19 Třída string
227
Stručný popis Konstruktory Operátory Vybrané metody
227 227 228 229
Příklad
230
KAPITOLA 20 Parametry a návratová hodnota programu
233
Parametry argc a argv
233
Návratová hodnota
235
Program na kopírování souborů
235
PŘÍLOHA A Číselné soustavy a reprezentace čísel
239
Jednotky informací
239
Číselné soustavy Hornerovo schéma Dvojková soustava Šestnáctková soustava
240 240 240 240
Reprezentace celých čísel v paměti počítače Celá čísla bez znaménka Celé čísla se znaménkem Uložení vícebajtových hodnot do paměti
241 241 241 243
K2237_sazba.indd 10
27.11.2015 12:06:37
Obsah
Reprezentace čísel v plovoucí řádové čárce v paměti počítače Standard IEEE 754
244 244
Logické operace NOT – logická negace (inverze) AND – logický součin OR – logický součet XOR – výlučný logický součet Souvislost s jazykem C++
245 245 245 246 246 246
PŘÍLOHA B Popis vývojového prostředí Dev-C++
247
Položky nabídky Soubor Editace Hledat Zobrazit Projekt Spustit Nástroje AStyle Okna Nápověda – klasické položky nápovědy (bez komentáře)
247 247 248 249 249 251 256 258 260 260 261
Ukázka ladění programu
261
Slovo závěrem
263
Seznam doporučené literatury pro další studium
264
Rejstřík
265
K2237_sazba.indd 11
27.11.2015 12:06:37