Popis:
Cíle předmětu:
Naučit se analyzovat vybrané problémy a stanovit elementární algoritmy k jejich řešení. Seznámit se s principy a vlastnostmi vyšších programovacích jazyků a zvolený jazyk ovládnout na úrovni nezbytné pro implementaci algoritmů. Seznámit se s organizací dat při řešení problémů. Aktivně ovládnout základní algoritmy a umět je aplikovat v praktických problémech. Seznámit se s hodnocením složitosti algoritmů. Seznámit se s principy testování programů. Naučit se používat prostředky pro ladění programů. Naučit se dokumentovat, obhajovat a prezentovat dosažené výsledky.
Anotace:
Algoritmy a řešení problémů: strategie řešení problémů, strukturovaná dekompozice, pojem a vlastnosti algoritmu. Základní programovací konstrukty: syntaxe a sémantika vyššího programovacího jazyka, proměnné, typy, výrazy, řídicí struktury, procedury a funkce, předávání parametrů, vstupy/výstupy, zpracování výjimečných stavů. Základní datové struktury: primitivní datové typy, strukturované datové typy: pole, záznam, soubor, znakové řetězce. Dynamické datové struktury, typ ukazatel. Strategie pro volbu vhodné datové struktury. Rekurze, pojem rekurze. Globální a lokální proměnné. Jednoduché rekurzivní funkce (procedury). Modulární návrh a abstrakce. Pojmy a algoritmy budou ilustrovány využitím vhodného programovacího jazyka (ISO/IEC 9899:1999 Programming languages - C).
Klíčová slova:
algoritmy
oddělovače
funkce
programování
implementace
parametry
Obsah:
- Vlastnosti algoritmů, notace a zápis algoritmů.
Techniky řešení problémů. Návrh a implementace algoritmů.
Principy vyšších programovacích jazyků. Symboly, oddělovače, konstanty, identifikátory, proměnné, reprezentace čísel, návěští.
Koncepce dat. Jednoduché datové typy. Výrazy a příkazy.
Řídicí struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
Funkce, parametry funkcí.
Textové soubory, standardní vstup/výstup.
Strukturované datové typy.
Rekurze v programování.
Typ ukazatel a dynamické proměnné. Spojové struktury.
Základní metody řazení.
Základní metody vyhledávání.
Verifikace programů, ladění a dokumentace.