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é) • M97
zadání: 55
Typicky zabere: 5 min

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

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

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

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

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

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

Rozklad programů (střední) • MMJ
zadání: 57
Typicky zabere: 10 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í) • NLU
zadání: 12
Typicky zabere: 5 min

Klasifikace (střední) • MHG
zadání: 11
Typicky zabere: 6 min

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

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

Obrázkové funkce (střední) • MHZ
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í) • NRH
zadání: 21
Typicky zabere: 5 min

Průzkum vesmíru: funkce (střední) • NTZ
zadání: 22
Typicky zabere: 7 min

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

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

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

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

Abstrakce příšerek (střední) • NCN
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í) • NCW
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...