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 Identik 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
4.3 Operace nad ordin ln mi datov mi typy.......... 31 4.3.1 Operace nad logick m datov m typem....... 33 4.3.2 Operace nad celo seln mi datov mi typy..... 35 4.3.3 Operace nad racion ln mi seln mi datov mi typy 36 4.3.4 Operace nad datov m typem v et......... 37 4.3.5 Operace nad datov m typem char......... 37 4.4 Deklarace konstant a datov ch typ............ 38 4.5 Deklarace prom nn ch.................... 40 4.6 Zm na datov ho typu (p etypov n ) prom nn...... 41 Ot zky a koly........................ 43 5 Z kladn stavba programu v jazyce pascal 45 5.1 Deklara n st........................ 45 5.2 P kazov st........................ 46 Ot zky a koly........................ 48 6 V razy a jejich vyhodnocov n 49 6.1 Struktura v raz....................... 49 6.2 Vyhodnocen v raz..................... 53 6.3 P ete en a podte en.................... 56 Ot zky a koly........................ 56 7 Jednoduch p kazy 59 7.1 P kaz p i azen........................ 59 7.2 P kaz procedury....................... 61 7.3 Procedury pro vstup a v stup daj............ 62 7.4 ten procedurou read (Turbo Pascal)........... 64 7.5 ten procedurou readln (Turbo Pascal).......... 64 7.6 Procedura write (Turbo Pascal)............... 65 7.7 Procedura writeln (Turbo Pascal).............. 65 7.8 Form tov n v stupn ch informac............. 66 7.9 Procedury Inc a Dec..................... 67 7.10 Pr zdn p kaz........................ 69 Ot zky a koly........................ 69 8 Tvorba a z pis program 71 8.1 Komunikace programu su ivatelem............. 71 8.2 Spustiteln programy..................... 72 8.3 P eklada TPC........................ 72 8.4 Syntaktick chyby v programu............... 73 x PASCAL
8.5 Postup p i tvorb programu................. 75 Ot zky a koly........................ 77 9 Strukturovan p kazy 79 9.1 Slo en p kaz......................... 79 9.2 P kazy v tven........................ 80 9.2.1 P kaz if........................ 80 9.2.2 P kaz case...................... 85 9.3 P kazy cyklu......................... 88 9.3.1 P kaz while..................... 88 9.3.2 P kaz repeat.................... 89 9.3.3 Vz jemn z m na p kaz while a repeat.... 91 9.3.4 P kaz for....................... 92 9.3.5 Implementace p kazu for.............. 93 9.4 ten ze standardn ho vstupn ho souboru......... 94 9.4.1 ten vstupn ady se zar kou........... 95 9.4.2 ten vstupn ady a do konce vstupn ho souboru 95 9.5 Dal e en p klady na procvi en cykl......... 98 Ot zky a koly........................ 101 10 Strukturovan datov typy 103 10.1 Datov typ pole....................... 105 10.1.1 Jednorozm rn pole................. 106 10.1.2 Pole znak...................... 109 10.1.3 V cerozm rn pole.................. 110 10.2 e en lohy s datov m typem pole............ 112 Ot zky a koly........................ 114 10.3 adic a vyhled vac algoritmy............... 115 10.4 Vyhled vac algoritmus v neuspo dan m poli....... 115 10.5 Algoritmy pro azen..................... 116 10.5.1 P m vkl d n.................... 117 10.5.2 P m v b r..................... 118 10.6 Vyhled vac algoritmy v uspo dan m poli........ 119 10.6.1 Vyhled n postupn m pr chodem......... 119 10.6.2 Vyhled n p len m intervalu............ 120 10.7 Datov typy ozna en packed............... 121 10.8 Datov typ z znam...................... 121 10.8.1 Variantn z znamy.................. 125 10.8.2 P kaz with...................... 128 10.9 Datov typ mno ina..................... 129 xi
10.9.1 azen mno inou................... 133 10.9.2 azen p znakem.................. 134 10.10V po et velikosti strukturovan ch prom nn ch...... 135 10.11P 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 n identik 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 ten 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 Denice 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 sudan 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 B Nutn znalosti opera n ho syst mu DOS 263 B.1 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 ltr 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.1 Popis p eklada e TPC.EXE................. 271 C.2 Automatizace pr ce s p eklada em............. 274 D Literatura 277 xiv PASCAL