od paulie » 23. 6. 2011 17:51
Průběh zkoušky byl stejný jako v předchozím termínu:
1. část
Haskell:
1) Úkolem bylo vymyslet reprezentaci polynomů a vytvořit funkce pro násobení a dělení (se zbytkem).
2) a) Pro zadanou permutaci čísel 1..N jsme měli najít následující v lexikografickém pořadí.
b) Pro dané N a K jsme měli najít K-tou permutaci čísel 1..N.
Prolog:
3) Měli jsme udělat predikát odpov(+r1, +r2), který odpoví, za si seznamy čísel, * a ? odpovídají. ? zastupuje libovolnou číslici, * zastupuje libovolně mnoho číslic.
4) Součtové seznamy (trochu podobné rozdílovým), skládající se ze dvou seznamů (A+B), první obsahoval jednu část celého seznamu, druhý obsahoval druhou část, ale obráceně. Poslední prvek součtového seznamu A+B je tedy první prvek B.
Měli jsme napsat predikáty na přidání prvku na začátek a na konec, odebrání prvku ze začátku a konce, konkatenaci a obrácení.
2. část
Na vstupu je konstantní Booleovský výraz zadaný seznamem spojek and, or, not a konstantami True a False. Spojky nemají žádnou prioritu, ani se nijak neasociují (bez závorek tedy nelze zjistit hodnotu výrazu). Úkolem bylo spočítat počet uzávorkování takových, že celý výraz měl hodnotu True.
Průběh zkoušky byl stejný jako v předchozím termínu:
[b]1. část[/b]
Haskell:
1) Úkolem bylo vymyslet reprezentaci polynomů a vytvořit funkce pro násobení a dělení (se zbytkem).
2) a) Pro zadanou permutaci čísel 1..N jsme měli najít následující v lexikografickém pořadí.
b) Pro dané N a K jsme měli najít K-tou permutaci čísel 1..N.
Prolog:
3) Měli jsme udělat predikát odpov(+r1, +r2), který odpoví, za si seznamy čísel, * a ? odpovídají. ? zastupuje libovolnou číslici, * zastupuje libovolně mnoho číslic.
4) Součtové seznamy (trochu podobné rozdílovým), skládající se ze dvou seznamů (A+B), první obsahoval jednu část celého seznamu, druhý obsahoval druhou část, ale obráceně. Poslední prvek součtového seznamu A+B je tedy první prvek B.
Měli jsme napsat predikáty na přidání prvku na začátek a na konec, odebrání prvku ze začátku a konce, konkatenaci a obrácení.
[b]2. část[/b]
Na vstupu je konstantní Booleovský výraz zadaný seznamem spojek and, or, not a konstantami True a False. Spojky nemají žádnou prioritu, ani se nijak neasociují (bez závorek tedy nelze zjistit hodnotu výrazu). Úkolem bylo spočítat počet uzávorkování takových, že celý výraz měl hodnotu True.