Programové struktury


Zadání samostatných úloh z Prologu


0. Veselá zvířátka

Kačer, racek, kohout a ježek si jednou vyšli do hospody. Druhý den si toho příliš nepamatovali. Věděli pouze, že:
- každý pil ten večer pouze jeden druh pití (pivo, zelenou, rum, víno)
- jeden z nich spal na lavičce
- ten, kdo pil rum, nespal doma ani na louce
- kohout ani racek rum nikdy nepijou
- rackovi bylo ráno velice špatně
- kohout a ježek vědí, že určitě nespali na louce
- kačer a ježek si pamatují, že nespali na naměstí
- ten, kdo pil pivo, nespal doma ani na louce
- kohout nikdy nepije pivo a kačer by se nikdy nenapil zelené
Pomozte jim určit, kdo co pil a kde spal, když víte, že každý spal jinde.



1. Kamarádi

V Karlových Varech jsou 4 střední školy. Do každé z nich chodí jeden z mých kamarádů. Úkolem je zjistit, kdo studuje na jaké škole. Víme pouze to, že:
- Elsner a Egert nestudují na obchodní akademii ani na gumnáziu.
- Lukáš nestuduje na gymnáziu.
- Martin nestuduje dopravní školu.
- Na obchodní akademii nestuduje Daniel and Lukáš.
- Jedna ze škol je průmyslovka.
- Macek se nejmenuje Peter ani Martin.
- Egert se nejmenuje Lukáš ani Peter.
- Můj nejlepší kamarád se jmenuje Surnak.



2. Abiturienti

Po letech se sešli abiturienti gymnázia. Pět z nich bylo kdysi velkými kamarády, ale život je rozvál do různých míst naší země, a to do Prahy, Brna, Ostravy, Českých Budějovic a Jihlavy (kterou považujeme za moravské město). Každý z nich měl jiné povolání a také jejich koníčky se lišily. Jeden z nich byl bezdětný, ostatní měli jeno, dvě, tři a čtyři děti. Každý fandil klubu v místě jeho bydliště: Spartě, Zbrojovce, Vítkovicím, Motoru a Dukle. Dále víme, že
- Lékař se jmenuje Mirek a inženýr má stejně dlouhé křestní jméno.
- Redaktor neni z Moravy a sbírá známky.
- Dispečer má o tři děti víc než redaktor.
- Obě Josefovy děti pěstují s otcem náruživě sport.
- Ten, kdo má čtyři děti fandí Dukle.
- Pražák rád čte, aby se odreagoval od své právnické praxe
- Petr má rád filmy
- bezdětný Jan fandí Motoru
- František zásadně nepřeje Vítkovicím
- V Brně žije dispečer.
Zjistěte, kdo kde žije, kolik má dětí, jaké má povolání a koníčky.



3. Einstein

Je řada pěti domů a každý má jinou barvu. V těchto domech žije pět lidí různých národností. Každý z nich má doma jiné zvíře, pije jiný nápoj a kouří jiné cigarety. Dále máme 15 faktů:
- Brit bydlí v červeném domě.
- Švéd má doma psa.
- Dan pije čaj.
- Zelený dům stojí hned nalevo od bílého.
- Majitel zeleného domu pije kávu.
- Ten, kdo kouří Pall Mall, má doma ptáka.
- Majitel žlutého domu kouří Dunhill.
- Človět z prostředního domu pije mléko.
- Nor bydlí v prvním domě.
- Ten, kdo kouří Blend, bydlí vedle toho, kdo má kočku.
- Ten, kdo má doma koně, bydlí vedle toho, kdo kouří Dunhill.
- Ten, kdo kouří Blue Master, pije pivo.
- Němec kouří Prince.
- Nor bydlí vedle modrého domu.
- Ten, kdo kouří Blend, má souseda, který pije vodu.
Kdo má doma akvárium s rybičkami?



4. Džbány

Máme k dispozici dva kameninové džbány - jeden o objemu X litru a druhy o objemu Y litru (při naplnění po okraj). Úkolem je naplnit větší (tj. Y-litrový) džbán přesně Z litry vody. Uživatel bude zadávat, jaká akce (naplnění, vyprázdnění, přilití) se má udělat.



5. Misionáři a kanibalové

X kanibalů a Y misionářů se potřebují dostat přes řeku. Mají loďku, která uveze max. dvě osoby. Na žádném břehu nesmí být nikdy více kanibalů než misionářů (pokud ano, kanibalové si pochutnají ;-) ). Uživatel bude zadávat, kdo má jet.



6. Umístění osmi dam na šachovnici

Program vyhledá všechny možné varianty, jak rozmístit 8 dam na šachovnici 8x8 tak, aby se vzájemně neohrožovaly.



7. Lloydova 15ctka (8čka)

Asi všichni znáte - 15 kamenů s čísly 1..15 a jedno volné místo v poli 4x4. Úkolem je správně je seřadit. (Uživatel bude pohybovat prázdným místem).



8. Sirky

Na stole jsou tři hromádky sirek. První hromádka obsahuje 8 sirek, druhá 5 sirek a třetí 3 sirky. Hráč, po jehož odebrání nezbyde na stole žádná sirka, prohrál. Hráč může odebrat vždy z jedné hromádky 1 až všechny sirky. Hráč bude hrát proti počítači.



9. Sirky II

Hra odebírání sirek z hromádky. Na začátku si hráč zvolí kolik bude sirek v hromádce a kolik maximálně může odebrat. Minimální počet sirek pro odebrání je 1. Vyhrává ten, kdo odebere poslední sirku. Hráč bude hrát proti počítači.



10. Koza, vlk a zelí

Koza, vlk a zelí se potřebují dostat z jednoho břehu na druhý, k dispozici mají loďku a převozníka. V loďce musí být vždy převozník a s ním maximálně jeden pasažer (koza, vlk nebo zelí). Na jednom břehu nesmí zůstat koza se zelím bez převozníka, jinak by koza sežrala zelí, ani vlk s kozou bez převozníka, jinak by vlk sežral kozu. Uživatel bude zadávat, kdo má jet.



11. Řazení - HEAPSORT

Napište algoritmus řazení HEAPSORT.



12. Oko

Karetní hra oko - hráč a počítač si berou střídavě karty z balíčku. Cílem je získat hodnotu součtu karet 21 nebo dvě esa = královské oko. Pokud je někdo přes 21, tak prohrává. Pokud jsou oba hráči pod 21, tak vyhrává ten, kdo je blíž. Pokud mají stejně, vyhrává hráč, který drží méně karet.



13. Uspořádání karet

Najděte všechna uspořádání množiny 27 karet 1, 2, ..., 9 taková, že mezi libovolnými dvěma kartami s hodnotou K je pravě K karet (pokud mezi nimi není karta s hodnotou K). Každá karta se vyskytuje v dané množině karet právě třikrát.



14. Logik

Hra logik. Máme figurky 8 barev. Počítač vybere náhodně 5 figurek (může být více figurek stejné barvy) a seřadí je. Naším úkolem je uhodnout správné uspořádání figurek na 10 pokusů. Po každém pokusu počítač ukáže počet trefených barev (ale netrefených pozic) a počet přesných tref (barva i pozice).



15. Piškvorky

Hra piškvorky v poli 3x3 (možné i rozšíření), hráč proti počítači.



16. IDOS

Je dáno X měst (minimálně 6) a vlaková spojení mezi nimi. Uživatel zadá odkud, kam a kdy chce jet. Program vypíše nejblížší možnosti, jak takovou cestu provést.




Textovky


Přidělenou úlohu lze odmítnout a dělat místo ní nějakou textovou hru. Ta bude samozřejmě hodnocena výše.

Příklady textových her:

Samozřejmě lze vymyslet spoustu dalších.






  Zpět  

Poslední změna: 15. 2. 2005
Josef Steinberger