# zkouška 21.1. [Hric]

<{ForumPost(poster="Osiris", timestamp=2008-01-21 17:38:40)}>
Dnes byly zadány tyto příklady (nezapsal jsem si zadání, pouze interpretuji):  
  
Prolog:

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

    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:

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

    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:

    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.
<{/ForumPost}>

<{ForumPost(poster="hardwire2", timestamp=2008-01-21 18:52:28)}>
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?
<{/ForumPost}>

<{ForumPost(poster="nardew", timestamp=2008-01-21 19:00:26)}>
na male bolo 75min, na velky 90.  
  
riesenie 3.), lebo len ten som vedel z haskellu:  

    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)
<{/ForumPost}>

<{ForumPost(poster="Osiris", timestamp=2008-01-21 19:15:50)}>

 > hardwire2 wrote: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 :  

    vsechnycovyhovuji s dvojice = [ x | x <- permutace s, vyhovuje x dvojice]
    

kde vyhovuje projela vsechny dvojice a vratila true, když byla permutace korektní
<{/ForumPost}>

<{ForumPost(poster="Medved", timestamp=2008-01-21 20:09:26)}>
Je potreba zapocet? Nejak jsem jeste nestihl dopsat zapoctak, coz me dost sere...
<{/ForumPost}>

<{ForumPost(poster="nardew", timestamp=2008-01-21 20:11:34)}>

 > Medved wrote:Je potreba zapocet? Nejak jsem jeste nestihl dopsat zapoctak, coz me dost sere...

ano, ten je povinny
<{/ForumPost}>

<{ForumPost(poster="Kudo", timestamp=2008-01-22 01:35:06)}>
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
<{/ForumPost}>

<{ForumPost(poster="nardew", timestamp=2008-01-22 01:44:24)}>
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..
<{/ForumPost}>

<{ForumPost(poster="Medved", timestamp=2008-01-22 01:58:11)}>
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 wrote:
 >  > Medved wrote:Je potreba zapocet? Nejak jsem jeste nestihl dopsat zapoctak, coz me dost sere...
 > 
 > ano, ten je povinny

<{/ForumPost}>

<{ForumPost(poster="Chjoodge", timestamp=2008-01-22 13:15:05)}>

 > Medved wrote:(...) kdezto napsat zapoctak 14 dni kazdodenni prace.

Omglol můj trval čistého času třeba pět hodin...
<{/ForumPost}>

<{ForumPost(poster="strky", timestamp=2008-01-22 23:42:03)}>
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?
<{/ForumPost}>

<{ForumPost(poster="nardew", timestamp=2008-01-22 23:59:27)}>

 > strky wrote: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.
<{/ForumPost}>

<{ForumPost(poster="Chjoodge", timestamp=2008-01-23 15:47:49)}>
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 :)
<{/ForumPost}>

<{ForumPost(poster="jumbo", timestamp=2008-01-24 21:03:00)}>
a ten velky priklad sa programoval v prologu alebo haskelly?
<{/ForumPost}>

<{ForumPost(poster="hardwire2", timestamp=2008-01-24 21:24:41)}>

 > jumbo wrote:a ten velky priklad sa programoval v prologu alebo haskelly?

Pry v cem chces, ale je to sity na miru Prologu.
<{/ForumPost}>

