mff

Markéta Popelová - Výuka

Programování 1

Aktuální informace - Programování 1



8. hodina (22.11.2012)

  • Soutěž Středník: Pátek 30.11.2012 mezi 15:00-18:00, viz: Soutěž Středník. (Více o tom na přednášce a příštím cvičení.)
  • Testík na funkce, procedury a předávání odkazem a hodnotou.
  • Tři jednoduché úložky na lineární (nevětvící se) rekurzi: Faktoriál, Mocnina a Součet.
  • Vyhledávání v setříděném seznamu v nerekurzivní i rekurzivní verzi: Binární vyhledávání.
  • Rozklad na sčítance pomocí rekurze: Rozklad na sčítance.
  • Hanojské věže.
Domácí úkol povinný: Všechny součty a Batoh Mailem
  1. CodEx Všechny součty
  2. Zadání je v CodExu. Inspirujte se kódy, které jsme psali na hodině.

  3. Mailem 2x Batoh
  4. Váš druhý úkol se váže k jedné z úloh o problému batohu - zde konkrétně hledání podmnožin předmětů, jejichž váhy dávají v součtu přesně zadané číslo k = nosnost batohu. Stáhněte si následující dva kódy: Rekurze 1 a Rekurze 2 a prověďte s nimi následující

    • Do úvodního komentáře napiště, co každý z kódů řeší přesně za úlohu.
    • Do úvodního komentáře napiště, jak to daný program řeší - hlavní myšlenky.
    • Okomentujte důležité části programu (proměnné, podprogram, důležitá volání apod.), abyste čtenáři vysvětlili, jak a proč daný kód funguje.
    • Vše mi pošlete e-mailem.
    • Rada: Kromě toho, že si oba kódy pečlivě přečtete a zkusíte pustit na několika vstupech, Vám doporučuji opět použít ladící prostředky - a prokrokovat si oba programy a sledovat při tom hodnoty jednotlivých proměnných.

Termín: do 28.11. (23:59) za plný počet bodů, či do 5.12. (23:59) za poloviční.

Domácí úkol opravný (za testík):

V dnešním testíku jste měli rozhodnout, co udělají tři programy. Přičemž testoval především pochopení vlastností předávání parametrů hodnotou a odkazem. Proto jako opravný domácí úkol za tuto písemku máte napsat text, ve kterém mě přesvědčíte, že dané problematice rozumíte. Měl by tedy obsahovat vysvětlení problematiky a všechny využitelné vlastnosti, které vás k tomu napadnou - kdy je co vhodné, příklady využití apod. Navíc tam napište správné odpovědi testíku a vysvětelní, proč dané tři programy vypíšou to, co vypíšou. Testík - část 1, Testík - část 2, Testík - část 3.

Termín: do 5.12. (23:59).

Domácí úkol bonusový: Permutace

Dnešní bonusové úlohy jsou tři, všechny se týkají permutací a všechny jsou v CodExu. Za každou z nich můžete získat 10 bonusových bodů. V této úloze ale nejde pouze o správný kód, který řeší zadání, ale především o slovní popis algoritmu. Tedy kdo budete mít alespoň vymyšlený algoritmus, pošlete mi ho. Kdo k tomu napíšete i kód, odevzdejte ho do CodExu. Nicméně vždy tam připište i slovní popis implementovaného algoritmu.

Jelikož jsou to tři úlohy a jsou důležité, tak jsou na ně dva týdny času. Vzhledem k tomu, že se jimi stejně dříve nebo později budeme zabývat na cvičení a bude třeba je pochopit, tak vy, kdož se nad nimi zamyslíte už teď, rozhodně neprohloupíte! Naopak za to ještě získáte bonusové body.

Termín: do 5.12. (23:59).

Tzv. "Větší písemka" 3.1.2013

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.

© Markéta Popelová 2009 - 2012