Kryl 26.6.2013

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ů.
Abby
Matfyz(ák|ačka) level I
Příspěvky: 21
Registrován: 4. 9. 2011 12:57
Typ studia: Informatika Mgr.

Kryl 26.6.2013

Příspěvek od Abby »

Prvá časť:
Haskell
  • Zadaná množina (rastúci zoznam unikátnych prvkov) a zobrazenie (zoznam dvojíc prvkov), úlohou bolo nájsť vzor a obraz množiny (a vrátiť opäť ako zoradený zoznam unikátnych prvkov).
  • Prevod obecného stromu na kanonickú reprezentáciu binárnym stromom (ľavý syn je prvorodený syn a pravý je mladší brat) a naspäť, pri prevode z binárneho na obecný môže vzniknúť les.
Prolog
  • Nájsť (bezprostredne) predchádzajúcu permutáciu v lexikografickom usporiadaní. (varianta na nasledujúcu permutáciu, stačí miesto rastúceho konca uvažovať klesajúci)
  • Delenie polynómov (reprezentáciu sme si mohli zvoliť).
Druhá časť:
Úloha s mobilom, každý mobil je buď jednoduchý - má iba záves a závažie alebo má záves, kĺb, dve ramená a na nich zavesené ďalšie mobily. Úlohou bolo vymyslieť vhodnú reprezentáciu mobilu v Haskelli a zistiť, či:
  • daný mobil je vyvážený, tzn. v každom kĺbe platí momentová veta (váha ľavého podmobilu * dĺžka ľavého ramena = váha pravého podmobilu * dĺžka pravého ramena), uvažujeme iba váhu závaží,
  • daný mobil je bezpečný, tzn. neexistuje také otočenie v niektorých kĺboch, že by do seba nejaké časti mobilu narazili.
Odpovědět

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