Obsah // 1 Algoritmy a programovací jazyky 1 // 1.1 Vlastnosti a vyjadřování algoritmů... 1 // 1.2 Algoritmizace a programování... 2 // 1.3 Programovací jazyk a strojový kód... 2 // 1.4 Vyjadřování pravidel programovacího jazyka ... 3 // 1.4.1 Syntaktické grafy... 3 // 1.4.2 Backusova-Naurova forma... 4 // Otázky a úkoly... 5 // 2 Programovací jazyk pascal 7 // Otázky a úkoly... 8 // 3 Prvky programovacího jazyka pascal 9 // 3.1 Množina symbolů... 9 // 3.2 Identifikátory... 11 // 3.3 Čísla... 16 // 3.4 Poznámky... 17 // 3.5 Znaky a řetězce znaků... 18 // 3.6 Oddělovače...20 // Otázky a úkoly...20 // 4 Proměnné, datové typy a konstanty 23 // 4.1 Jednoduché datové typy...25 // 4.1.1 Celočíselné datové typy...25 // 4.1.2 Datový typ logických hodnot...27 // 4.1.3 Datový typ znak...27 // 4.1.4 Datový typ výčet...28 // 4.1.5 Datový typ interval ...29 // 4.2 Datové typy racionálních čísel...30 // ix 10.9.1 Razení množinou...133 // 10.9.2 Razení příznakem ...134 // lO.lOVýpočet velikosti strukturovaných proměnných...135 // lO.HPřetypování strukturovaných datových typů...137 // Otázky a úkoly...138 // 11 Práce s řetězci znaků 141 // 11.1 Datový typ string...141 // 11.2 Zobrazení řetězce v paměti ...141 // 11.3 Ctení a zápis řetězců...142 // 11.4 Přehled operací pro práci s řetězci...143 // 11.4.1 Délka řetězce...145 // 11.4.2 Pozice v řetězci a podřetězce...145 // 11.4.3 Přímý přístup
ke složkám řetězce...146 // 11.4.4 Mazání v řetězci a vkládání do řetězce...146 // 11.5 Řešené příklady s řetězci...147 // Otázky a úkoly...149 // 12 Vlastnosti datových typů 151 // 12.1 Shodnost datových typů...151 // 12.2 Slučitelnost datových typů...152 // 12.3 Přiřazovatelnost hodnot datových typů...153 // 12.4 Rozsah platnosti pravidel o shodnosti, slučitelnosti a přiřazovatelnosti...154 // 13 Podprogramy 155 // 13.1 Procedury...156 // 13.2 Funkce...156 // 13.3 Parametry podprogramů...160 // 13.4 Místní a společné deklarace...160 // 13.5 Předepsané a skutečné parametry podprogramů...161 // 13.6 Parametry nahrazené hodnotou a odkazem ...163 // 13.7 Shodnost datových typů parametrů podprogramů...165 // 13.8 Bloková struktura programu...165 // 13.8.1 Zastínění identifikátoru ...167 // 13.9 Konformní pole...168 // 13.10Rekurze a rekurzivní podprogramy...170 // 13.11Datový typ podprogram...172 // 13.11.1 Náhrada cyklů repeat a while...172 // Otázky a úkoly...175 // xii PASCAL 14 Soubory 177 // 14.1 Textové a netextové soubory ...178 // 14.2 Otevření a uzavření souboru...179 // 14.3 Deklarace souborů...179 // 14.4 Procedury a funkce pro práci se soubory...180 // 14.4.1 Kroky při práci se soubory ...180 // 14.4.2 Ctení ze souborů a zápis do textových souborů . . 183 // 14.4.3 Práce se soubory s udaným typem...184 // 14.4.4 Práce s netextovými soubory bez udání typu . . . 185 // 14.4.5 Změna aktuální
pozice v netextovém souboru . . . 187 // Otázky a úkoly...189 // 15 Datový typ ukazatel 191 // 15.1 Organizace paměti - Turbo Pascal...193 // 15.2 Operace nad datovým typem ukazatel...193 // 15.3 Operace nad dynamickými proměnnými v jazyce Turbo // Pascal...194 // 16 Algoritmy s dynamickými datovými strukturami 197 // 16.1 Lineární seznam jednosměrný...198 // 16.1.1 Vložení prvku na začátek seznamu a průchod // seznamem...198 // 16.1.2 Hledání prvku a vyřazení prvku ze seznamu ... 200 // 16.2 Hledání v seznamu...202 // 16.2.1 Obecné vložení prvku do seznamu, uspořádaný // lineární seznam...203 // 16.3 Lineární seznam obousměrný...207 // 16.4 Stromové struktury...209 // 16.4.1 Vyvážené binární stromy. Vkládání vrcholů, // průchod stromem...210 // 16.4.2 Rušení vrcholu...214 // Otázky a úkoly...215 // 17 Návěští a příkazy skoku 217 // 17.1 Návěští ...217 // 17.2 Příkaz skoku ...217 // 17.3 Procedury skoku v jazyce Turbo Pascal...218 10.9.1 Řazení množinou...133 // 10.9.2 Řazení příznakem ...134 // lO.lOVýpočet velikosti strukturovaných proměnných...135 // lO.UPřetypování strukturovaných datových typů...137 // Otázky a úkoly...138 // 11 Práce s řetězci znaků 141 // 11.1 Datový typ string...141 // 11.2 Zobrazení řetězce v paměti ...141 // 11.3 Čtení a zápis řetězců...142 // 11.4 Přehled operací pro práci s řetězci...143 // 11.4.1 Délka řetězce...145 // 11.4.2 Pozice v řetězci
a podřetězce...145 // 11.4.3 Přímý přístup ke složkám řetězce...146 // 11.4.4 Mazání v řetězci a vkládání do řetězce...146 // 11.5 Řešené příklady s řetězci...147 // Otázky a úkoly...149 // 12 Vlastnosti datových typů 151 // 12.1 Shodnost datových typů...151 // 12.2 Slučitelnost datových typů...152 // 12.3 Přiřazovatelnost hodnot datových typů...153 // 12.4 Rozsah platnosti pravidel o shodnosti, slučitelnosti a přiřazovatelnosti...154 // 13 Podprogramy 155 // 13.1 Procedury...156 // 13.2 Funkce...156 // 13.3 Parametry podprogramů...160 // 13.4 Místní a společné deklarace...160 // 13.5 Předepsané a skutečné parametry podprogramů...161 // 13.6 Parametry nahrazené hodnotou a odkazem ...163 // 13.7 Shodnost datových typů parametrů podprogramů...165 // 13.8 Bloková struktura programu...165 // 13.8.1 Zastíněm identifikátoru...167 // 13.9 Konformní pole...168 // 13.10Rekurze a rekurzivní podprogramy...170 // 13.11 Datový typ podprogram...172 // 13.11.1 Náhrada cyklů repeat a while...172 // Otázky a úkoly...175 // xii PASCAL 14 Soubory 177 // 14.1 Textové a netextové soubory ...178 // 14.2 Otevření a uzavření souboru...179 // 14.3 Deklarace souborů...179 // 14.4 Procedury a funkce pro práci se soubory...180 // 14.4.1 Kroky při práci se soubory ...180 // 14.4.2 Ctení ze souborů a zápis do textových souborů . . 183 // 14.4.3 Práce se soubory s udaným typem...184 // 14.4.4 Práce s netextovými soubory
bez udání typu . . . 185 // 14.4.5 Změna aktuální pozice v netextovém souboru . . . 187 // Otázky a úkoly...189 // 15 Datový typ ukazatel 191 // 15.1 Organizace paměti - Turbo Pascal...193 // 15.2 Operace nad datovým typem ukazatel...193 // 15.3 Operace nad dynamickými proměnnými v jazyce Turbo // Pascal...194 // 16 Algoritmy s dynamickými datovými strukturami 197 // 16.1 Lineární seznam jednosměrný...198 // 16.1.1 Vložení prvku na začátek seznamu a průchod // seznamem...198 // 16.1.2 Hledání prvku a vyřazení prvku ze seznamu ... 200 // 16.2 Hledání v seznamu...202 // 16.2.1 Obecné vložení prvku do seznamu, uspořádaný // lineární seznam...203 // 16.3 Lineární seznam obousměrný...207 // 16.4 Stromové struktury...209 // 16.4.1 Vyvážené binární stromy. Vkládání vrcholů, // průchod stromem...210 // 16.4.2 Rušení vrcholu...214 // Otázky a úkoly...215 // 17 Návěští a příkazy skoku 217 // 17.1 Návěští ...217 // 17.2 Příkaz skoku ...217 // 17.3 Procedury skoku v jazyce Turbo Pascal...218 // xiii 18 Knihovny podprogramů v jazyce Turbo Pascal 221 // 18.1 Standardní knihovny v jazyce Turbo Pascal...221 // 18.2 Připojení knihoven...223 // 18.3 Tvorba vlastních knihoven...225 // 18.4 Kruhové odkazy mezi knihovnami...228 // Otázky a úkoly...230 // 19 Datový typ objekt a objektově orientované programování 231 // 19.1 Pojem objektu...231 // 19.2 Definice objektu ...233 // 19.2.1 Základní manipulace s objektem...234
// 19.2.2 Zapouzdřenost objektů...235 // 19.2.3 Dědičnost objektů...235 // 19.2.4 Slučitelnost objektů...237 // 19.2.5 Mnohotvarost objektů...237 // 19.2.6 Statické a virtuální metody objektů...238 // 19.2.7 Destruktory...240 // 19.3 Rozšíření procedur New a Dispose...241 // 20 Další prostředky jazyka Turbo Pascal 251 // 20.1 Konstanty s udaným datovým typem...251 // 20.2 Další možnosti při deklaraci podprogramů...253 // 20.3 Umístění proměnné v operační paměti...254 // A Tabulka znaků ASCII 257 // В Nutné znalosti operačního systému DOS 263 // B.l Operační systém DOS...263 // B.2 Názvy souborů a adresářů...263 // B.3 Programy a jejich provedení...264 // B.4 Filtry operačního systému...266 // B.5 Tvorba filtrů operačního systému...267 // B.6 Zpracování příkazového řádku...268 // B. 7 Přenos výstupního kódu...269 // C Překladač jazyka Turbo Pascal 271 // C. l Popis překladače TPC.EXE...271 // C.2 Automatizace práce s překladačem...274 // D Literatura 277 // xiv PASCAL