from turtle import Turtle julie = Turtle() # 1. úkol: šestiúhelníková spirála (3 b.) ''' Napište funkci, která použitím želví grafiky vykreslí spirálu o zadané délce první strany (side) a daném počtu závitů (loops). Spirála se skládá ze stran uspořádaných za sebou jako v šestiúhelníku, akorát s tím rozdílem, že každá další strana je o 1 kratší než ta předchozí. Výsledná spirála je ilustrována v diskusním fóru. ''' def hexa_spiral(side, loops): pass # 2. úkol: kytička ze šestiúhelníkových spirál (5 b.) ''' Za pomoci spirály vytvořené v předchozím úkolu nakreslete květinku, jejímiž listy budou právě šestiúhelníkové spirály a jejíž střed bude prázdný (pouze ohraničen nejdelšími stranami spirál). Funkce opět obdrží na vstupu velikost nejdelší strany a počet závitů. K vykreslení celého obrazce se vám ještě bude hodit umět pohnout s želvou, aniž by za sebou zanechala stopu. K tomu slouží funkce penup, tedy příkaz julie.penup() – pokud se vaše želva zrovna jmenuje julie. A následně musíte želvě opět položit ocásek na zem, což se dělá příkazem julie.pendown(). Výsledný obrazec je opět v diskusním fóru. ''' def hexa_flower(side, loops): pass # 3. úkol: zjednodušená Recamanova posloupnost (6 b.) ''' Třetí funkcí vypište daný počet prvků (n) rekurentně zadané posloupnosti. Konkrétně se bude jednat o zjednodušenou Recamanovu posloupnost (více najdete třeba zde: http://oeis.org/A005132). Nultým členem posloupnosti je 0, pro každý další člen platí: a_n = a_(n-1) – n, pokud takové číslo vyjde kladné, v opačném případě a_n = a_(n-1) + n. Oproti pravé Recamanově posloupnosti nebudeme řešit, zda už se v posloupnosti takový člen vyskytuje, nebo ne. Ukázku výpisu najdete u volání funkcí na konci tohoto souboru. Výpis pro recamans_sequence(10) by měl vypadat takto: 0 1 3 6 2 7 1 8 16 7 ''' def recamans_sequence(n): pass # 4. úkol: tabulka minimálních hodnot z dvojice č. řádku a č. sloupce (5 b.) ''' Stejně jako ve sbírce úloh napište funkci vypisující tabulku o zadaném počtu řádků a sloupců (size), v jejíchž buňkách bude vždy menší z čísel aktuálního sloupce a řádku. Kód této podúlohy neváhejte rozdělit do několika funkcí vypisujících různé části tabulky. ''' def min_table(size): pass # 5. úkol: hvězdicka v textové grafice (6 b.) ''' Pomocí textové grafiky vykreslete hvězdičku zadané velikosti (výška i šířka je stejná – čtverec), která bude sestávat ze zaplněné úhlopříčky, svislého středového sloupce a vodorovného prostředního řádku. Na vstupu funkce očekávejte lichá čísla. Ve výsledku bude výpis svým vzezřením připomínat vlajku Velké Británie, odsud název podúlohy „Union Jack“. ''' def union_jack(size): pass # volání všech úkolů (nehodící se volání neváhejte dočasně zakomentovat): hexa_spiral(90, 15) '''vzorový výsledek je v diskusním fóru''' hexa_flower(60, 10) '''vzorový výsledek je v diskusním fóru''' min_table(5) ''' 1 2 3 4 5 - - - - - 1 | 1 1 1 1 1 2 | 1 2 2 2 2 3 | 1 2 3 3 3 4 | 1 2 3 4 4 5 | 1 2 3 4 5 ''' recamans_sequence(10) '''0 1 3 6 2 7 1 8 16 7 ''' union_jack(7) ''' #..#..# .#.#.#. ..###.. ####### ..###.. .#.#.#. #..#..# '''