Cvičení k I002 (Návrh algoritmů I)
Požadavky pro získání zápočtu
- Docházka
- Naprogramované příklady
- Písemka
- Zápočtový příklad
Hotové příklady na disketě
- Unita se zásobníkem -- reprezentace pomocí dynamických proměnných
- Unita s frontou -- reprezentace pomocí dynamických proměnných
- Převod aritmetického výrazu z infixu do postfixu (pomocí zásobníku)
- Vyhodnocení arit. výrazu zapsaného v postfixovém tvaru
(binární operátory, priorita op., závorky; pomocí zásobníku)
- Unita se seznamem - reprez. pomocí dynam. prom.
(ukládání na začátek/konec seznamu, za/před prvek
na který ukazuje ukazatel, odebrání následníka prvku zadaného
ukazatelem, odebrání prvku zadaného hodnotou,
hledání prvku, procházení seznamu, třídění)
- Určete frekvenci výskytů jednotlivých slov načítaného textu
(úprava programu z přednášky -- doplnění zarážky)
- Josephus (Rozpočítávání) -- dynamicky, pomocí pole
(simulace zřetězeného seznamu), zobrazení v CRT
- Topologické třídění
- Kříž -- úprava programu z přednášky, implementovat přehnednější
zobrazení výsledku, vylepšení testovaní podmínky
- Backtracking (jedena z možností): všechny různé pozice ve čtverci,
počet různých cest koněm po celé šachovnici
- Unita pro práci s grafy (dynamicky, incidenční matice)
vytvoření grafu, výpis grafu
- Cesta v bludišti
- Warshall-Floyd na zjištění souvislosti grafu
- Dijkstrův alg. pro hledání nejkratších cest
- Minimální kostra grafu
- Procházení grafu do hloubky a do šířky - zjišťování vzdáleností všech
uzlů od daného uzlu
- Zjistění nejkratších cest pro všechny dvojice uzlu - Warshall-Floyd
- Problém obchodního cestujícího -- rekurzivně; použití heuristiky
Možné zápočtové příklady
- Program, který vypisuje svůj vlastní zdrojový kód
- Celočíselná aritmetika (+,-,*,/) pro velká čísla (řádově 1000
desítkových cifer)
- Semigraficky zvýrazněné porovnání dvou souborů
- Editor grafů (vlkádání/odebírání/ohodnocení uzlů/hran, uložení, načtení ...)