Zadání je v CodExu. Inspirujte se kódy, které jsme psali na hodině.
Napište dva programy, které budou dle zadaného n počítat n.-té číslo Fibonacciho posloupnosti. První program (nerekurzivní) napište tak, jak Vám přijde tuto úlohu nejlépe vyřešit (tedy rychle a úsporně na paměť - nicméně řešení, které spočte všechna F(k) pro k <= n je dostatečně rychlé). Druhý program bude rekurzivní. Tedy stejnou úlohu vyřešte za použití rekurze - a naopak bez použití cyklů (polí, apod.). Kromě toho, že programy okomentujete (to už je samozřejmé ;)), tak ještě připište, které řešení Vám přijde lepší a proč. Vše mi pošlete e-mailem.
Fibonacciho posloupnost 0,1,1,2,3,5,8,13,21,... je definovaná:
Termín: do 21.11. (23:59) za plný počet bodů, či do 28.11. (23:59) za poloviční.
Termín: do 28.11. (23:59).
Na vstupu je n předmětů a číslo k. Dále následují objemy n předmětů. Vaším úkolem je najít všechny podmnožiny předmětů, které se přesně vejdou do batohu o objemu k. (Prostě nám jde o to, které množiny předmětů dají v součtu k.)
Zkuste vymyslet (ideálně rekurzivní) algoritmus, který to bude řešit, a co nejjasněji ho popsat. Poslat mi můžete i samotný algoritmus, nebo společně i jeho implementaci v Pascalu.
Termín: do 21.11. (23:59).
Na první lednové hodině 3.1.2013 budeme psát závěrečnou větší písemku (pozor, to není ta zápočtová, na kterou se budete hlásit přes SIS a podrobnější informace k ní dostanete od Vašich přednášejících.) Budete na ni mít čas celé cvičení. Bude na počítačích, tedy ne klasicky jako malé testíky na papír. Měla by být lehčí než ta zápočtová, také na ni bude méně času - ale tématicky podobná. Což je výhodné především z toho důvodu, že učením se na ni tzv. "zabijete dvě mouchy jednou ranou". Neboť o to kratší bude Vaše příprava na zápočtový test (ale ten nepodceňte!). Napsat tuto písemku, je nutná podmínka k zápočtu.
Komu se nepodaří napsat správně písemku na první lednové hodině, ten bude mít ještě možnost si to opravit. Ale samozřejmě ne zadarmo. Dostane dvě větší úlohy, které bude muset vypracovat. Ovšem pro každého budou pevně zadané a nebudou patřit k těm nejlehčím. Tedy doporučuji se na tuto možnost nespoléhat.
A ještě je tu jedna možnost, jak se této písemce "vyhnout". Abyste měli, jak se na písemku připravovat, máte v CodExu zadaných 5 úloh označených jako "Předpracování písemky 3.1.2013.". Zkuste si všechny z nich projít, promyslet a co nejvíce z nich si zkuste i napsat. No - a jak si je budete zkoušet napsat, tak když libovolné dvě z nich dovedete do funkčního stavu včetně slovního popisu řešení v úvodu a dostatečných komentářů, můžete je odevzdat do CodExu - a pokud budou správně, nebudete muset psát tu lednovou písemku. (Resp. si ji napsat můžete, abyste si to zkusili, ale povinnost k zápočtu budete mít už splněnou.) Ovšem pozor, na každou úlohu máte povolená nejvýše 3 odevzdání, takže si prvně pořádně zkontrolujte, zda Vám úloha funguje na vzorovém vstupu a i na dalších vstupech, které vymyslíte. Termín pro odevzdání těchto úloh do CodExu je 31.12.2011 (23:59) (nenechávejte je na poslední chvíli - byla by škoda programovat o Silvestru ;)). Pokud vyřešíte například jednu úlohu ze dvou, budete to mít jako bonus k lednové písemce.
Doporučuji všem na lednovou písemku dorazit. I kdybyste měli "předpracováno" dostatek na zápočet, tak si zkusíte, jaké je to psát program v časově omezeném prostoru a mimo pohodlí domova/koleje. Zároveň tam s Vámi mohu probrat Vaše chyby z doma vypracovaných úloh.