Funkce a zobecňování
MXGFunkce jsou základním stavebním blokem, pomocí kterého vytváříme programy. Představují konkrétní realizaci obecného principu rozklad na části.
Zjednodušeně řečeno, funkce je kouzlo, kterému něco předložíme (vstup) a ono nám vykouzlí něco jiného (výstup).
- Pohádkový příklad: Zvětšovací kouzelná hůlka, kterou poťukáme zeleninu a ona ji zvětší na dvakrát větší velikost.
- Matematický příklad: Funkce odmocnina, která dáme na vstup číslo a ona nám vrátí jiné číslo (např. pro vstup 25, vrátí výsledek 5).
- Programátorský příklad: Funkce
polygon(n, délka)
, které dáme na vstup dvě čísla (počet stran a délku strany) a ona vykreslí obrázek mnohoúhelníku.
Jednoduché funkce bez parametrů umožňují pouze opakované vykonání přesně téhož kódu (např. vždy stejně velký čtverec). Funkce však mohou obsahovat i parametry, které ovlivňují jejich chování (např. velikost čtverce). Funkce mohou volat jiné funkce a někdy dokonce samy sebe – takovým funkcím se říká rekurzivní.
Při zavádění funkcí potřebujeme umět abstrahovat – tedy odhlédnout od nepodstatných detailů – a následně kód zobecnit – tedy nahradit proměnlivé detaily proměnnými, z nichž pak uděláme parametry funkce. Složitý program, zejména takový, ve kterém se opakuje podobný kód, lze rozložit do několika funkcí, a tím ho zjednodušit a zpřehlednit.
Rozhodovačka
Rychlé procvičování výběrem ze dvou možností.
Funkce bez parametrů (lehké)
zadání: 55
Typicky zabere: 5 min

Funkce bez parametrů (střední)
zadání: 56
Typicky zabere: 6 min

Funkce bez parametrů (těžké)
zadání: 63
Typicky zabere: 6 min

Funkce s parametry (lehké)
zadání: 32
Typicky zabere: 5 min

Funkce s parametry (střední)
zadání: 41
Typicky zabere: 9 min

Funkce s parametry (těžké)
zadání: 50
Typicky zabere: 12 min

Zobecňování programů (střední)
zadání: 45
Typicky zabere: 7 min

Rozklad programů (střední)
zadání: 57
Typicky zabere: 11 min

Přesouvání
Přesouvání kartiček na správné místo. Jednoduché ovládání, zajímavé a neotřelé úlohy.
Domino: abstrakce (střední)
zadání: 12
Typicky zabere: 5 min

Klasifikace (střední)
zadání: 11
Typicky zabere: 5 min

Žebřík abstrakce (střední)
zadání: 16
Typicky zabere: 5 min

Vláček: funkce (střední)
zadání: 12
Typicky zabere: 5 min

Obrázkové funkce (střední)
zadání: 8
Typicky zabere: 6 min

Označování
V zadaném obrázku či textu máte za úkol označit všechny oblasti, které splňují určitou vlastnost.
Abstrakce (střední)
zadání: 21
Typicky zabere: 5 min

Průzkum vesmíru: funkce (střední)

Vybarvování: volání funkcí s parametry (střední)
zadání: 23
Typicky zabere: 5 min

Vybarvování: funkce s parametry (střední)
zadání: 41
Typicky zabere: 5 min

Vybarvování: rekurze a fraktály (střední)
zadání: 23
Typicky zabere: 5 min

Pexeso
Hledání dvojic, které k sobě patří.
Klasifikace obrázků (lehké)
zadání: 10
Typicky zabere: 2 min

Abstrakce příšerek (střední)
zadání: 7
Typicky zabere: 3 min

Krok po kroku
Doplňování jednotlivých kroků v rozsáhlejším postupu.
Funkce s parametry (střední)
zadání: 10
Typicky zabere: 8 min

ProgMalování
Tvorba obrázků skládáním základním tvarů (např. kruh, čtverec), využití blokového programování.
Funkce
Pomocí funkcí můžeme vytvořit nové vzory a umisťovat je na různá místa na plátně.
Stavitel
Pomocí blokového programování vytvořte program pro stavitele Standu.
Funkce bez parametrů
Rekurze
Bonusová sada, ve které nejsou dostupné bloky pro opakování. Místo toho je potřeba vhodně využít rekurzivní funkce (funkce, které volají sami sebe).
Kód kostky
Navigujte kostku po plánu podle zadaného programu. Procvičení schopnosti číst programy.
Funkce kostky
Nyní naučíme kostky nové pokyny. A tyto pokyny hned využijeme pro stručný zápis zajímavé procházky.
Funkce s parametry
Nyní kostky naučíme funkce, jejichž význam záleží na vstupním parametru.
Robotanik
Jednoduché grafické ovládání, zapeklité programátorské úlohy.
Středně těžké
U těchto úloh už se budete muset trochu víc zamyslet, ale nejsou v nich ještě žádné záludné finty.
Těžké
Tady už to začíná být komplikovanější. U těchto příkladů už je často potřeba využít naplno princip rekurze (zanořování a vynořování z funkcí).
Opravdová výzva
Tyto úlohy už mohou dát zabrat i zkušenému programátorovi.
Python želva
Tvorba programů v Pythonu, kreslení obrázků želví grafikou.
Rekurze a fraktály
Náročné, bonusové téma pro pokročilé. Za využití rekurze můžeme pomocí želví grafiky kreslit elegantní fraktály. Jde to často krátkým programem, který však vůbec není lehké vymyslet...