mff

Markéta Popelová - Výuka

Programování 1

Aktuální informace - Programování 1



4. hodina (25.10.2012)

Domácí úkol povinný: CodEx 2x

Tentokrát máte v CodExu za domácí úkol dvě úlohy: Maximum v posloupnosti (výskyty) a PPPPP 2.6 Všechna prvočísla. V obou si procvičíte práci s polem.

Důležitá poznámka: všechny úlohy, které od teď budete odevzdávat do CodExu, či mi posílat e-mailem, by měly splňovat základní vlastnosti čitelného a udržovatelného kódu:

  • Indentace (odsazování). Slouží k rychlé orientaci uvnitř struktury kódu. Každé tělo cyklu (+ příkazy za podmíkou, atd.) by mělo být odsazené. Příkazy na stejné úrovni by měly být zarovnané pod sebou. Konkrétní styl odsazování vám nebudu nutit, ale zvolte si jeden jednotný a ten pak dodržujte.
  • Komentování. Komentáře se v Pascalu píší do složených závorek { Jako například tento komentář. }. Slouží k vysvětlení určitých částí kódu. Vy byste takto měli vysvětlit významy použitých proměnných a hlavně všechny netriviální myšlenky vašeho programu. Zároveň hlavní myšlenku byste měli shrnout v úvodním komentáři za názvem programu.
  • Názvy proměnných. Ty by měly naznačovat význam jejich použití. Například proměnná, ve které si ukládám maximální hodnotu z načtených čísel, by se mohla jmenovat max, maximum, maxValue, maxHodnota apod. Proměnná sloužící k uložení součtu čísel zase soucet, suma, celkem. Výjimkou jsou řídící proměnné for-cyklu, které je zvykem nazývat i, j, k, nemají-li nějaký hlubší význam.
  • Stručnost. Před odevzdáním vymažte všechny "slepé vývojové větve", místo abyste je jen zakomentovali. Stejně tak vymažte (i zakomentované) pomocné výpisy.

Pro komentáře a indentaci se nechte inspirovat v ukázkových programech ze cvičení. Názvy proměnných tam jsou někdy občas trochu "nicneříkající", ale ještě v normě.

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

Domácí úkol opravný (za testík): Počet různých hodnot v posloupnosti (CodEx)

Jednoduchá úložka zaměřená sice na trochu jinou oblast než testík, ale také ze základů Pascalu.

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

Domácí úkol bonusový č. 1: Goldbachova hypotéza

Když už budete mít naprogramované to Eratosthenovo síto, mohlo by být také zajímavé zkusit si naprogramovat něco, kde se to využije. Právě to si můžete vyzkoušet v bonusové úloze v CodExu s názvem PPPPP 2.7 Goldbachova hypotéza.

Btw. myslíte si, že ta hypotéza platí, nebo neplatí? Jak je to třeba pro prvních 10000 čísel?

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

Domácí úkol bonusový č. 2: 100 Američanů

100 Američanů se dostane do zajetí. Nepřátelský velitel se těší, jak je postupně všechny odpraví. Aby to bylo zajímavější, udělá to jako hru. Seřadí je do řady tak, aby každý viděl jen na ty před sebou (na všechny), ale žádné za sebou. Každému dá na hlavu černou či bílou čepičku, z neznámého počtu černých a bílých. Následně přiloží pistoli k hlavě posledního v řadě a ten smí říci jen jedno slovo “bílá” či “černá” - a uhodnout tím, jakou barvu má čepice na jeho hlavě. Strefí-li se, vůdce ho nechá žít, jinak zemře. Následně přejde velitel k předposlednímu vojákovi v řadě a pokračuje stejným způsobem.

Američané si smí dopředu rozmyslet nějakou strategii. Co si mají dohodnout, aby jich přežilo co nejvíce? Kolik nejvíce jich může přežít na 100%? Kolik nejvíce jich může přežít se štěstím?

Termín: do 31.10. (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