Ing. Martin Rameš
Malé domácí úlohy
Zde se nachází přesné znění malých domácích úloh. Tyto úlohy je potřeba vypracovat do následujícího cvičení od jejich zadání, nahrát před cvičením na GitLab a přidat cvičícího do projektu s právy vyššími, než má Guest.
1.1 Láhve
Máme 5-litrovou nádobu a 3-litrovou nádobu. Na začátku jsou obě prázdné. Akce jsou – naplnění celé nádoby vodou, vylití veškeré vody z nádoby, přelití vody z jedné nádoby do druhé (pokud se do druhé nádoby nevejde všechna voda z první nádoby, zbývající voda zůstává v první nádobě). Přelévat můžeme z 5-litrové do 3-litrové i opačně. Cílem je mít v 5-litrové nádobě 4 litry vody. Na cvičení zadaná úloha měla navíc 2-litrovou nádobu. Tato není potřeba k dosažení řešení, ale zkrátí počet kroků k němu. Použití 2-litrové nádoby je dobrovolné.
Vytvořte program, který najde řešení úlohy v minulém odstavci. Program navrhne pomocí algoritmu BFS/DFS (stačí jeden, výběr na studentoví) plán pro přelévání vody od počátečního stavu k cílovému stavu. Plán vypište / vizualizujte na obrazovce. Program můžete vytvořit v libovolném programovacím jazyce.
1.2 Kůň
Vytvořte program, který přijme na vstupu počáteční a konečnou pozici koně na šachovnici (8x8 či nastavitelná velikost jako součást vstupu). Program navrhne pomocí algoritmu BFS/DFS (stačí jeden, výběr na studentoví) cestu pro koně od počáteční pozice k pozici konečné. Cestu vypište / vizualizujte na obrazovce. Program můžete vytvořit v libovolném programovacím jazyce.
- Upozornění – vzhledem k podobnosti úloh 1.1 a 1.2 bude v případě odevzdání obou úloh bodově ohodnocena pouze jedna z nich (ta s lepším bodovým hodnocením).