Zkouska 18.6.2009

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ů.
Hans z labu

Zkouska 18.6.2009

Příspěvek od Hans z labu »

HASKELL

1. Mocninnou radu reprezentujeme jako nekonecny seznam jejich koeficientu. Naprogramujte funkce, ktere spocitaji a) Hodnotu souctu prvnich n clenu rady pro k-tou derivaci v bode x, b) Soucin dvou mocninnych rad

2. Ridka matice je reprezentovana jako trojice <m,n,s>, kde m je pocet radek, n je pocet sloupcu a s je seznam trojic <i,j,a_ij> (kde i je cislo radky, j je cislo sloupce a a_ij je nenulova hodnota) usporadany vzestupne podle i a uvnitr radek podle j. Naporgramujte funkce, ktere v teto reprezentaci realizuji a) transpozici matic b) nasobeni matic

PROLOG

3. Na brehu reky je m misionaru a k kanibalu. Maji se prepravit na druhy breh pomoci jedne lodky, na ktere muze jet jedna nebo dve osoby. Pokud v nejakem okamziku je na nekterem z brehu vice kanibalu, misionare snedi. Pokud je lodka u brehu, pocita se jeji osadka do osazenstva na brehu. Existuje zpusob jak se mohou prepravit, aniy by byl nekdo sneden? Pokud ano najdete nejkratsi takovy.

4. Priklad popisuje situaci, kdy jeste nebyly mobilni telefony. Kazdy telefon byl v nejakem byte a patril domacimu. V databazi jsou fakty nasledujicich typu (nemusi popisovat situaci uplne, jsou to informace, ktere jsou prave k dispozici):
macislo(Kdo,TelCislo) - Kdo ma telefonni cislo TelCislo
jes(Kdo,Skym) - Kdo je s Kym
jevByte(Kdo,Domaci) - Kdo je v byte, ktery patri Domacimu
znacislo(Kdo,Koho,Cislo) - Kdo zna Cislo Koho

Muzete predpokladat, ze data jsou korektni (nejsou v nich spory).

Naprogramujte predikat muzeZavolat(+Kdo,-Obet,-Jak), ktery na strednik vyda vsechny moyne Obeti, ktere muze Kdo telefonicky zastihnout. Obeti nemusi pri tom volat na jeji cislo, ale na cislo bytu, kde dotycna prave je. Pokud toto cislo nezna, muze si ho predem telefonicky zjistit u nekoho, kdo ho zna. Vystupni paramatre tedy obsahuje informace o vsech volanich potrebnych, abychom zastihli Obet.
DarkAngeL
Matfyz(ák|ačka) level I
Příspěvky: 9
Registrován: 28. 10. 2007 17:53
Typ studia: Informatika Mgr.

Re: Zkouska 18.6.2009

Příspěvek od DarkAngeL »

Nevi nekdo, jak hezky na tu 4. ulohu? Mne to prislo prilis chaoticky na to, abych se to pokousel na zkousce nejak napsat.
Medved
Admin(ka) level I
Příspěvky: 168
Registrován: 30. 5. 2006 21:18

Re: Zkouska 18.6.2009

Příspěvek od Medved »

DarkAngeL píše:Nevi nekdo, jak hezky na tu 4. ulohu? Mne to prislo prilis chaoticky na to, abych se to pokousel na zkousce nejak napsat.
To je zrovna docela jednoduche, ne?

Nekomu muzu zavolat kdyz:
1) znam jeho cislo
2) znam cislo nekoho kdo zna jeho cislo
3) muzu zavolat nekomu, kdo s nim bydli

Akorat je potreba si hlidat, aby se to nezacyklilo asi nakym seznamem osob, ktere uz jsem lustroval. A Jak je zasobnik, ktery postupne inkrementuju. Kdyztak dej vedet, kdyby to nestacilo a ja zkusim naprogramovat. Ale ted se ucim na pondelni statnici :)
Odpovědět

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