Úvod 11 // 1. Program v jazyce С 15 // 1.1 Struktura programu 16 // 1.2 Abeceda jazyka С 16 // 1.3 Komentáře 18 // 1.4 Identifikátory 18 // 1.5 Rezervovaná slova 19 // 2. Konstanty 21 // 2.1 Celá čísla 21 // 2.1.1 Celá čísla s dvojnásobnou přesností 21 // 2.1.2 Celá čísla s poloviční přesností 22 // 2.1.3 Celá čísla bez znaménka 22 // 2.1.4 Reprezentace v jiných číselných soustavách 22 // 2.2 Čísla s pohyblivou řádovou čárkou 23 // 2.3 Znaková konstanta 23 // 3. Proměnné a deklarace 25 // 3.1 Základní typy proměnných 26 // 3.1.1 Znakový typ 27 // 3.1.2 Celočíselný typ 27 // 3.1.3 Typ čísla s pohyblivou řádovou čárkou 28 // 3.1.4 Typ čísla s pohyblivou řádovou čárkou v dvojnásobné // přesnosti 28 // 3.1.5 Přehled základních datových typů 28 // 3.2 Ukládací třídy 29 // 3.2.1 Automatické proměnné 30 // 3.2.2 Statické proměnné 30 // 3.2.3 Externí proměnné 31 // 3.2.4 Registrové proměnné 31 // 3.3 Deklarace 31 // 3.4 Inicializace 34 // 4. Další datové typy 35 // 4.1 Pointer, lvalue, inicializace pointeru 35 // 4.1.1 Deklarace pointeru 36 // 4.1.2 Inicializace pointeru 37 // 4.1.3 Lvalue a objekty 37 // 3 Turbo С - popis jazyka // 4.2 Pole 38 // 4.2.1 Vícerozměrná pole 38 // 4.2.2 Deklarace pole 38 // 4.2.3 Interpretace pole 39 // 4.2.4 Inicializace polí 41 // 4.3 Struktury a uniony 42 // 4.4 Deklarace const 47 // 4.5 Prázdný datový typ 48 // 4.6 Deklarace typedef a abstraktní deklarace 48 // 4.7 Deklarace enum 51 // 4.8 Data modifikovatelná z pozadí 53 // 4.9 Pseudoproměnné 53 // 5. Řetězce literálů 55 // 5.1 Řetězcové konstanty 55 // 5.2 Znakový pointer (alokace a dealokafce paměti) 56 // 5.3 Znakové pole 57 // 6. Příkazy 59 // 6.1 Výrazový příkaz 59 // 6.2 Složený příkaz 59 // 6.3 Podmínkový příkaz 60 // 6.4 Příkaz while 61 //
6.5 Příkaz do 61 // 6.6 Příkaz for 62 // 6.7 Příkaz switch 63 // 6.8 Příkaz break 64 // 6.9 Příkaz continue 65 // 6.10 Příkaz return 66 // 6.11 Příkaz goto 66 // 6.12 Návěští 67 // 6.13 Příkaz assembleru ve zdrojovém textu 67 // 6.14 Prázdný příkaz 67 // 7. Výrazy, operace a operátory 69 // 7.1 Základní výrazy 69 // 7.2 Operace a operátory 71 // 7.2.1 Unární operace a operátory 71 // 7.2.2 Multiplikativní operátory a operace 73 // 7.2.3 Aditivní operátory a operace 74 // 7.2.4 Operátory a operace bitového posuvu 75 // 7.2.5 Relační operace a operátory 75 // 7.2.6 Operace a operátory porovnávání 75 // 7.2.7 Bitová konjunkce (AND) 76 // 7.2.8 Bitová disjunkce (XOR) 76 // 7.2.9 Bitová alternativa (OR) 76 // 7.2.10 Logická konjunkce (AND) 77 // 7.2.11 Logická alternativa (OR) 77 // 7.2.12 Operace a operátor podmínky 77 // 7.2.13 Operace a operátory přiřazení 77 // 7.2.14 Operace a operátor čárka 78 // 7.3 Priority 79 // 7.4 Konverze typů 79 // 7.5 Konstantní výrazy 80 // 8. Funkce 81 // 8.1 Definice funkce 82 // 8.2 Deklarace funkcí 85 // 8.2.1 Prototyp funkce 85 // 8.2.2 Klasická deklarace funkce 86 // 8.3 Předávání parametrů 86 // 8.3.1 Předávání řetězců, polí, struktur a unionů 88 // 8.3.2 Funkce jako parametr 90 // 8.3.3 Funkce s proměnným počtem parametrů 92 // 8.4 Rekurzívní volání 93 // 8.5 Funkce typu interrupt 93 // 8.6 Konvence volání funkcí Pascalu a jazyka 94 // 8.7 Předání argumentů funkci main 96 // 9. Metapříkazy (direktivy) 97 // 9.1 Makroinstrukce (makra) 97 // 9.2 Vložení souboru 101 // 9.3 Podmíněná kompilace 102 // 9.4 Instrukce pro nastavení čísla řádky 104 // 9.5 Instrukce pro generování chybového hlášení 104 // 9.6 Direktiva #pragma 105 // 9.6.1 Instrukce pro vložení části programu v assembleru 105 //
9.6.2 Nastavení varovných hlášení 106 // 9.6.3 Direktiva k ochraně registrů 106 // 9.7 Prázdná direktiva 106 // 10. Paměťové modely 107 // 11. Tvorba, překlad, linkování a spuštění programu (TC.EXE a TCC.EXE) 111 // 11.1 Header soubory 112 // 11.2 Program složený z modulů (zdrojových nebo kompilovaných) 114 // 11.3 Externí definice a rozsah platnosti 115 // 12. Globální proměnné Turbo С 117 // 13. Matematické funkce a náhodná čísla 121 // 13.1 Dělení čísel, zbytek a operace modulo 121 // 13.2 Určení maxima a minima 121 // 13.3 Absolutní hodnota 122 // 13.4 Zaokrouhlování čísel 123 // 13.5 Goniometrické funkce 123 // 13.6 Hyperbolické funkce 124 // 13.7 Cyklometrické funkce 124 // 13.8 Exponenciální funkce, mocnina, odmocnina 125 // 13.9 Logaritmické funkce 126 // 13.10 Speciální funkce 126 // 13.11 Funkce pro rotaci bitů 127 // 13.12 Funkce pro ošetření matematických chyb 127 // 13.13 Generování náhodných čísel 128 // 14. Práce s pamětí 131 // 14.1 Dynamické přidělování paměti 131 // 14.2 Hlavní paměť 131 // 14.2.1 Alokace 131 // 14.2.2 Změna velikosti alokované oblasti 132 // 14.2.3 Uvolnění paměti 132 // 14.2.4 Velikost volné paměti 133 // 14.2.5 Nastavení velikosti segmentu dat programu 133 // 14.3 Paměť ze vzdálené haldy 135 // 14.4 Alokace segmentu paměti DOSu 136 // 14.5 Paměť BIOSu 137 // 14.6 Manipulace s hodnotami v paměti 137 // 14.6.1 Nastavěli a zjištění bytu a slova 138 // 14.6.2 Nastavení úseku paměti 138 // 14.6.3 Kopírování úseku paměti 139 // 14.6.4 Hledání a třídění 140 // 15. Práce s řetězci 143 // 15.1 Délka řetězce 143 // 15.2 Reverze řetězce 143 // 15.3 Porovnání řetězců 144 // 15.3.1 Porovnávání s rozlišením velkých a malých písmen 144 // 15.3.2 Porovnávání řetězců bez rozlišení velkých a malých písmen 144 //
15.4 Spojování řetězců 145 // 15.5 Kopírování řetězců 146 // 15.6 Nastavení hodnot řetězců 147 // 15.7 Konverze velkých a malých písmen v řetězci 147 // 15.8 Záměna bytů 147 // 15.9 Vyhledávání jednotlivých znaků a skupiny znaků v řetězci 148 // 15.10 Klasifikace a konverze znaků 149 // 15.11 Konverze čísel a řetězců 150 // 15.11.1 Konverze řetězce na číslo 150 // 15.11.2 Konverze řetězce na číslo v jiné číselné soustavě 151 // 15.11.3 Konverze čísla na řetězec 152 // 15.12 Zápis do řetězce a čtení z řetězce 153 // 16. Vstupní a výstupní operace 155 // 16.1 Funkce pro I/O na standardní zařízení 157 // 16.1.1 Vstup ze standardního vstupního zařízení 157 // 16.1.1.1 Funkce scanf 157 // 16.1.1.2 Další funkce pro vstup ze standardního vstupního zařízení 161 // 16.1.2 Výstup na standardní výstupní zařízení 162 // 16.1.2.1 Funkce printf 162 // 16.1.2.2 Další funkce pro výstup na standardní výstupní zařízení 167 // 16.2 Funkce pro I/O na řídící panel 168 // 16.2.1 Vstup z klávesnice 168 // 16.2.2 Výstup na obrazovku 170 // 16.2.3 Ovládání obrazovky 171 // 16.2.4 Operace na hardwarovém portu 178 // 16.2.5 Další funkce pro vstup a výstup 179 // 16.3 Datové toky 180 // 16.3.1 Mód přenosu 181 // 16.3.2 Otevření datového toku 181 // 16.3.3 Vyrovnávací paměť datového toku 183 Turbo С - popis jazyka // 16.3.4 Čtení a zápis do datového toku 185 // 16.3.4.1 Čtení z datového toku 185 // 16.3.4.2 Zápis do datového toku 187 // 16.3.5 Pozice v datovém toku 189 // 16.3.5.1 Zjištění pozice v datovém toku 189 // 16.3.5.2 Nastavení pozice v datovém toku 190 // 16.3.6 Zavření datového toku 191 // 16.3.7 Ošetření chyb v datovém toku 191 // 16.3.8 Vztah datového toku a diskového souboru 192 // 16.3.9 Předdefinované datové toky 194 //
16.4 Diskové soubory 195 // 16.4.1 Otevření souboru 195 // 16.4.2 Vytvoření a otevření souboru 198 // 16.4.3 Sdílení souborů 199 // 16.4.4 Aktuální pozice v souboru 200 // 16.4.5 Změna a zjištění parametrů souboru po jeho otevření 201 // 16.4.6 Čtení ze souboru 203 // 16.4.7 Zápis do souboru 204 // 16.4.8 Uzavření souboru 204 // 16.4.9 Práce s hardwarovým zařízením jako se souborem 206 // 16.5 Diskové a adresářové funkce 206 // 16.5.1 Aktivní disk 206 // 16.5.2 Adresářové funkce 207 // 16.5.3 Volný prostor disku 208 // 16.5.4 Přejmenování souboru 209 // 16.5.5 Zrušení souboru 209 // 16.5.6 Atributy souboru 210 // 16.5.7 Verifikace zápisu 211 // 16.5.8 Přímé čtení a zápis sektoru disku 212 // 16.5.9 Funkce pro FAT 212 // 16.5.10 Analýza a syntéza disku, cesty a jména souboru . 213 // 16.5.11 Prohledávání adresářů 215 // 16.5.12 Unikátní jméno souboru 216 // 16.5.13 Další funkce 217 // 17. Funkce pro řízení chodu programu 219 // 17.1 Ukončení chodu programu 219 // 17.2 Volání jiného programu nebo provedení příkazu DOSu 221 // 17.3 Řízení statusu koprocesoru 223 // 17.4 Pozastavení chodu programu 224 // 17.5 Zvuk 225 // 17.6 Řízení statutu Ctrl + break 225 // 17.7 Prostředí DOSu 226 // 17.8 Země DOSu 227 // 17.9 Zjištění PSP 228 // 17.10 Signál prováděnému programu 228 // 17.11 Nelokální skok 230 // 17.12 Konstrukce adresy typu far 231 // 17.13 Ošetření chyb 231 // 17.14 Čas a datum 233 // 17.14.1 Konverze formátů a časová diference 234 // 17.14.2 Zjištění systémového času a data 236 // 17.14.3 Nastavení systémového času a data 237 // 17.14.4 Lokální čas 237 // 17.14.5 Čas procesoru 239 // 17.15 Systémová volání a přerušení 240 // 17.16 Ostatní funkce 244 // 17.16.1 Komunikace 244 // 17.16.2 Vkládání znaků do kompilovaného kódu 245 //
17.16.3 Test hardwarové konfigurace 245 // 17.17 Prostředky pro proměnný počet argumentů 245