Zkouška 6. 2.

Přednáška je věnována neprocedurálnímu programování. Většina semestru je věnována programování v jazyku Prolog, ve kterém studenti i ladí zápočtové programy. Informativně se studenti seznámí i s jazykem LISP a neprocedurálními částmi programovacích systémů.
Xerxes
Matfyz(ák|ačka) level I
Příspěvky: 37
Registrován: 23. 1. 2007 16:32
Typ studia: Informatika Bc.
Bydliště: Zlínský kraj / Kolej 17. listopadu
Kontaktovat uživatele:

Zkouška 6. 2.

Příspěvek od Xerxes »

Dnes nám pan Hric zadal tyto úlohy:

Prolog

Kód: Vybrat vše

1) Najděte hladovým algoritmem v daném neorientovaném grafu co největší kliku (nemusí být ze všech možných klik největší, ale nesmí jít zvětšit zahrnutím dalšího vrcholu).

2) Upravte daný orientovaný graf odebráním určitých hran tak, aby neobsahoval žádný orientovaný trojúhelník A->B, A->C, B->C. Hranu A->B přitom smíte odebrat jedině tehdy, pokud je součástí takového trojúhelníku (čili existuje C tak, že A->C a B->C).
Haskell

Kód: Vybrat vše

3) Je daná multimnožina (množina, ve které se mohou prvky opakovat) kladných čísel. Zjistěte, lze-li tuto multimnožinu rozdělit na dvě části (podmnožina a její doplněk) tak, aby obě tyto části měly stejný součet prvků. Pokud ano, vydejde libovolné takové rozdělení.

4) Je dán seznam dvojic čísel U a seznam čísel S. Vydejte seznam všech permutací seznamu S takových, že pro každou dvojici (x, y) z U platí, že prvek x je v permutaci před prvkem y.
Teorie

Kód: Vybrat vše

5) Vysvětlete deklaraci typových tříd a jejich instancí (Haskell).
Velký příklad

Kód: Vybrat vše

Převod výrazu na hradlovou síť.

Hradlová síť je seznam hradel, kde každé hradlo má své jméno, druh a seznam vstupů, přičemž vstupem může být jméno jiného hradla (čili jeho výstup), konstanta nebo proměnná. Síť je acyklická (vstup žádného hradla nijak nezávisí na jeho výstupu).

Vstupem programu je aritmetický výraz coby prologovský term (čili už znáte jeho rozparsovanou strukturu). Tento výraz obsahuje binární operátory +, -, *, /, funkce sin a cos, proměnné (= atomy) a konstanty (= čísla).

Výstupem je hradlová síť tohoto výrazu. K dispozici jsou hradla druhu +, -, *, /, sin a cos. Navíc hradla typu + a * mohou mít více jak dva vstupy a mezi nimi nesmí být výstup jiného hradla stejného druhu.
Odpovědět

Zpět na „PRG005 Neprocedurální programování“