Příloha B. Zadání projektu

Řešte vybranou úlohu prostředky jazyka Haskell. Řešení bude doplněno dokumentací obsahující podrobné zadání problému, popis postupu řešení a návod k použití programu (dokumentace může být součástí zdrojového textu). Součástí programu bude i sada testovacích příkladů demonstrujících správnou činnost programu.

Zadání jsou pouze tematická, v případě potřeby je možno podrobnosti dohodnout s vyučujícím, případně lze dohodnout řešení úlohy mimo uvedený seznam témat.

  1. Převod regulárního výrazu na nedeterministický automat.
  2. Převod nedeterministického konečného automatu na deterministický.
  3. Převod booleovských výrazů do normální formy.
  4. Vyhledávání v řetězci s regulárními výrazy.
  5. Výpočet množin First a Follow pro zadanou gramatiku.
  6. Komprese dat.
  7. Vyhledání cest v bludišti.
  8. Simulace kombinačních a sekvenčních logických obvodů.
  9. Simulace zásobníkového automatu s vyhledáním všech možností přijetí zadaného řetězce.
  10. Simulace Turingova stroje.
  11. Knihovna operací nad gramatikami (testování vlastností, transformace).
  12. Knihovna aritmetických operací s polynomy.
  13. Knihovna operací nad B-stromy.
  14. Knihovna aritmetických funkcí s libovolnou přesností.
  15. Hra Life
  16. Hra Reversi
  17. Hra Logik

U programů, které vyžadují vstup složitějších datových struktur, se připouští zadávání vstupních dat formou konstant uvedených přímo v programu (tj. není nutné např. definici automatu číst ze vstupu v textové podobě). Programy musí v tom případě umožňovat zadání více úloh současně v jednom souboru.