zkouška 21.1. [Hric]

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ů.
Osiris
Supermatfyz(ák|ačka)
Příspěvky: 403
Registrován: 11. 11. 2006 14:10
Typ studia: Informatika Mgr.
Bydliště: Praha
Kontaktovat uživatele:

zkouška 21.1. [Hric]

Příspěvek od Osiris »

Dnes byly zadány tyto příklady (nezapsal jsem si zadání, pouze interpretuji):

Prolog:

Kód: Vybrat vše

Převeďte n-ární strom na binární.

Kód: Vybrat vše

Je dán graf. Najděte všechny cesty délky 2, vytvořte nový graf z původního, který bude mít tyto cesty přidané jako hrany. Nesmí se použít bagof, setof a findall.
Haskell:

Kód: Vybrat vše

Máte seznam a číslo n a vypsat seznam obsahující prvky původního seznamu jehož součet je n (problém batohu).

Kód: Vybrat vše

Máte seznam s a  seznam dvojic (a,b). Máte vypsat všechny permutace původního seznamu, kde pro každou dvojici je v permutaci a před b.
Pak byla ještě teoretická otázka, pattern matching.

Velký příklad:

Kód: Vybrat vše

Máte orientovaný graf s pojmenovanými hranami a v něm vrchol u. Máte seznam J, který obsahuje jména hran a to, zda se smí hrana smazat nebo ne. Vygenerujte nový graf, který bude obsahovat pouze cesty vedoucí z vrcholu u takové, že tyto cesty vyhovují J. Cesta vyhovuje J, když můžeme některé hrany z J smazat tak, že se promazané J a cesta rovnají.
Příklady jsem měl všechny, velký příklad taktéž, teorii jsem moc neměl, dostal jsem 1.
Osiris
hardwire2
Matfyz(ák|ačka) level I
Příspěvky: 24
Registrován: 5. 1. 2008 19:57
Typ studia: Informatika Bc.

Re: zkouška 21.1. [Hric]

Příspěvek od hardwire2 »

Jestli je na to jenom hodina, tak je to docela drsný....nemoh bys alespoň naznačit, jak jsi řešil ty příklady z Haskellu?
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Typ studia: Informatika Bc.
Bydliště: Otava - Jizni Mesto

Re: zkouška 21.1. [Hric]

Příspěvek od nardew »

na male bolo 75min, na velky 90.

riesenie 3.), lebo len ten som vedel z haskellu:

Kód: Vybrat vše

batoh [] _ = []
batoh (a:t) lim
    | (sum b1) == lim = b1
    | (sum b2) == lim = b2
    | otherwise = []
    where b1 = batoh t lim
          b2 = a:(batoh t (lim - a))
ten 4.) niektori robili tak, ze vygenerovali vsetky permutacie a potom to len preseli, ci splnuju podmienky

inak odporucam prejst zadania z tohoto fora z roku 2005, ked mal neproc Hric, lebo zadania sa opakuju, niekde malinka zmena(teda aspon pri malych)
Osiris
Supermatfyz(ák|ačka)
Příspěvky: 403
Registrován: 11. 11. 2006 14:10
Typ studia: Informatika Mgr.
Bydliště: Praha
Kontaktovat uživatele:

Re: zkouška 21.1. [Hric]

Příspěvek od Osiris »

hardwire2 píše:Jestli je na to jenom hodina, tak je to docela drsný....nemoh bys alespoň naznačit, jak jsi řešil ty příklady z Haskellu?
3 už máš napsaný, tak jen napíšu, jak se řešil ten čtvrtý

Hricovi nezáleželo na složitosti, takže jsem to udělal tak, že jsem si vygeneroval všechny permutace a pak ty permutace přelil přes síto :

Kód: Vybrat vše

vsechnycovyhovuji s dvojice = [ x | x <- permutace s, vyhovuje x dvojice]
kde vyhovuje projela vsechny dvojice a vratila true, když byla permutace korektní
Osiris
Medved
Admin(ka) level I
Příspěvky: 168
Registrován: 30. 5. 2006 21:18

Re: zkouška 21.1. [Hric]

Příspěvek od Medved »

Je potreba zapocet? Nejak jsem jeste nestihl dopsat zapoctak, coz me dost sere...
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Typ studia: Informatika Bc.
Bydliště: Otava - Jizni Mesto

Re: zkouška 21.1. [Hric]

Příspěvek od nardew »

Medved píše:Je potreba zapocet? Nejak jsem jeste nestihl dopsat zapoctak, coz me dost sere...
ano, ten je povinny
Uživatelský avatar
Kudo
Matfyz(ák|ačka) level I
Příspěvky: 20
Registrován: 17. 10. 2006 11:57
Typ studia: Informatika Mgr.
Bydliště: Švehlova
Kontaktovat uživatele:

Re: zkouška 21.1. [Hric]

Příspěvek od Kudo »

Pls mohli by ste niekto napisat ake su poziadavky na 3. Myslim kolko z malych programov musim mat spravne a ako mam mat velky program.

Dik
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Typ studia: Informatika Bc.
Bydliště: Otava - Jizni Mesto

Re: zkouška 21.1. [Hric]

Příspěvek od nardew »

no asi sa to lisi od terminu ku terminu a od cloveka ku cloveku. ja som jeden nemal vobec, dva som mal male chyby ktore mi dal opravit a aj som ich opravil, jeden som mal napoly, velky az na par mensich chyb dobre a mal som za tri, co je podla mna vcelku primerane. ale ked si pozres reporty zpred 2 rokov, tak fakt sa to uplne navzajom lisi..
Medved
Admin(ka) level I
Příspěvky: 168
Registrován: 30. 5. 2006 21:18

Re: zkouška 21.1. [Hric]

Příspěvek od Medved »

To je teda peknej vopruz, protoze naucit se na zkousku je zalezitost jednoho odpoledne, kdezto napsat zapoctak 14 dni kazdodenni prace. Asi se s neprockem rozloucim pro letosek :/
nardew píše:
Medved píše:Je potreba zapocet? Nejak jsem jeste nestihl dopsat zapoctak, coz me dost sere...
ano, ten je povinny
Uživatelský avatar
Chjoodge
Matfyz(ák|ačka) level I
Příspěvky: 11
Registrován: 30. 5. 2007 10:05

Re: zkouška 21.1. [Hric]

Příspěvek od Chjoodge »

Medved píše:(...) kdezto napsat zapoctak 14 dni kazdodenni prace.
Omglol můj trval čistého času třeba pět hodin...
strky
Matfyz(ák|ačka) level I
Příspěvky: 13
Registrován: 24. 1. 2006 15:15
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Re: zkouška 21.1. [Hric]

Příspěvek od strky »

Ako prebiehala skuska? Bolo napisanie nejakej casti z malych prikladou podmienkou pripustenia k velkemu? Alebo sa to pisalo dohromady? Ako dlho trvala ustna cast? Kedy bola?
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Typ studia: Informatika Bc.
Bydliště: Otava - Jizni Mesto

Re: zkouška 21.1. [Hric]

Příspěvek od nardew »

strky píše:Ako prebiehala skuska? Bolo napisanie nejakej casti z malych prikladou podmienkou pripustenia k velkemu? Alebo sa to pisalo dohromady? Ako dlho trvala ustna cast? Kedy bola?
hric napise na tabulu 4 male priklady - 2 na prolog, 2 na haskell - a jeden teoreticky. na vypracovanie tychto 5 prikladov bolo 75min. potom bola 15min pauza, po ktorej sa vsetci znovu zidu v ucebni a hric napise na tabulu tazky priklad, na ktory je cas 90min. pri odovzdavani velkeho ti hric povie cas, kedy mas prijst na ustnu(ja som mal ustnu o 2hod.). na ustnej ti da pripadne opravit nejake male chyby v malych prikladoch(co je vcelku dobre), no a potom po par min. k tebe pride a spolu preberete najprv male priklady a po nich zacnes vysvetlovat velky priklad, pricom velky priklad si hric predtym vobec necital, az ked mu ho vysvetlujes ty. ustna teda dokopy trvala v mojom pripade nieco cez 20min - 30min. tot vsio.
ake su podmienky k pripusteniu k ustnej neviem, ale urcite musis mat aspon jeden priklad ako tak schopne i z prologu i z haskellu. inak male priklady su vsetky rovnocenne.
Uživatelský avatar
Chjoodge
Matfyz(ák|ačka) level I
Příspěvky: 11
Registrován: 30. 5. 2007 10:05

Re: zkouška 21.1. [Hric]

Příspěvek od Chjoodge »

Rada: Čtyři úlohy a jedna otázka na 75 minut se může zdát trochu hodně, ale malé příklady jdou napsat dost krátce. Většinou není řešení delší než dvacet řádek. Takže pokud vás napadne, jak něco vyřešit, ale zdá se vám to dlouhé, tak to raději vymyslete znovu, protože ty malé příklady jsou o tom přijít na ta krátká řešení, abyste to stihnuli :) Začít psát trojstránková řešení se vyplatí až když už není zbytí, protože ten čas pak žerou dost rychle.

Navíc i když něco vymyslíte oklikou na tři strany místo na tři řádky (jako třeba já generování permutací v Haskellu :)), tak z toho Hric moc nadšený není.

Škoda, že to vím až teď :D Ale aspoň že se trojka taky zapisuje :)
jumbo

Re: zkouška 21.1. [Hric]

Příspěvek od jumbo »

a ten velky priklad sa programoval v prologu alebo haskelly?
hardwire2
Matfyz(ák|ačka) level I
Příspěvky: 24
Registrován: 5. 1. 2008 19:57
Typ studia: Informatika Bc.

Re: zkouška 21.1. [Hric]

Příspěvek od hardwire2 »

jumbo píše:a ten velky priklad sa programoval v prologu alebo haskelly?
Pry v cem chces, ale je to sity na miru Prologu.
Odpovědět

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