Zkouska 2009-06-04

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ů.
Medved
Admin(ka) level I
Příspěvky: 168
Registrován: 30. 5. 2006 21:18

Zkouska 2009-06-04

Příspěvek od Medved »

1) Prolog.

Na vstupu je seznam. Pro kazdy prvek seznamu je jiz definovan predikat modry(X), ktery o prvku rekne, jestli je modry. Naprogramujte predikat na5tiny, ktery vstupni seznam rozdeli na 5 seznamu, jejichz velikost se lisi maximalne o jedna. Velikost je definovana jako pocet modrych elementu v seznamu. Vystupem je pak seznam, ktery obsahuje vyse popsanych pet seznamu tak, ze kdyz tech pet seznamu zretezime, dostaneme vstupni seznam.

na5tiny(+Vstup, -Vystup)

2) Prolog.

Sifra. Ta je reprezentovana mrizkou 4*4, kde jsou nektere policka vystrihnute. A tou mrizkou se otaci nad textem a opisujete to, co vidite v tech vystrizenych polickach. Vzdycky se otoci 4x a pak se posunete dal. (Nechce se mi to vypisovat, musi se to nakreslit). Vasim ukolem je pro mrizku overit, ze je dobre definovana (tzn. ze po odsifrovani dostanete to stejne co jste zasifrovali, vic nechte rict) a napsat tu metodu na sifrovani a desifrovani.

Te sifre se imho rika Monte Cristo.


3) Haskell

Mejme binarni strom A, jehoz uzlove prvky jsou odvozeny od tridy Equal. Tento strom reprezentuje relaci na svych uzlech takto:
pro dva uzly X a Y rekneme, ze X ~ Y, pokud existuje orientovana cesta od X do Y. Sipky jsou ve smeru od korene.

Vymyslete a napiste datovou strukturu pro reprezentovani takoveho stromu. Naprogramujte predikat, ktery pro dva takove stromy urci, zdali definuji identickou relaci.

4) Haskell

Mejme multimnozinu (tj. prvky se mohou opakovat) na dekadickych cislicich 0-9. Vymyslete a napiste datovou strukturu pro reprezentovani prvku multimnoziny. Predstavme si, ze vytvorime vsechny cisla, ktere jdou z prvku teto multimnoziny vytvorit.

Pr: MM = {0,0,1,2}
Cisla = [0, 1, 2, 10, 12, 20, 21, 100, 102, 200, ...]
Pozn.: 001 neni cislo

Tyto cisla myslenkove seradme dle velikosti a naprogramujte nasledujici:

a) K cislu N a dane multimnozine najdete Nte cislo v takovem seznamu Cisel.
b) K cislu odpovezte, na jakem miste by se v takovem seznamu cisel nachazel.

Pozn.: Vygenerovat seznam Cisel a odpocitat neni resenim, ktere bude uznano.

Jen tak)

Dr. Kryl byl jako vzdy svuj. V prvnim prikladu je velmi dulezite, ze prvky jsou modre, a ne cervene. Ale tazateli pry jeho komunistickou predstavu vyvracet nebude. Neni nutne chodit na zkousku ve smutecnim.

3 hodiny casu; 2 priklady jsou minimum, ale zalezi taky, co to znamena mit dva priklady; dotazy ochotne zodpovezeny vsechny; imho priklad 4 tezky, zbytek prumer
Odpovědět

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