Domácí úloha 5 – skupina 23 Termín odevzdání : 2. 1. 2018, 9:00 1. Napište objektovou implementaci základů želví grafiky s vykreslováním do SVG (na základě kódů uvedených ve slajdech k přednášce). Dále implementujte metody pro otočení směrem k zadané želvě a pro vykreslení spojnice se zadanou želvou. Využitím těchto metod vytvořte níže zobrazené obrázky. Levý obrázek představuje želví honičku, kdy několik namodralých želv honí jednu červenou. Pravý obrázek vznikne tak, že dvě želvy jdou po kružnici, přičemž jedna z nich jde rychleji než ta druhá, a pravidelně se vykreslují spojnice mezi nimi. Barevnost obrázků řešit nemusíte, ale můžete. Všechny implementované funkce uložte do souboru du05_01.py a nahrajte do příslušné odevzdávárny v ISu. (15b) 2. Přiložený soubor jmena.csv obsahuje četnosti křestních jmen lidí narozených na území současné České republiky v období od roku 1897 do roku 2015 včetně. Po jednom načtení dat z tohoto souboru a jejich uložení do vhodné datové struktury napište funkce pro výpis:  Nejoblíbenějších křestních jmen pro každý rok v zadaném rozmezí (od roku X do roku Y včetně)  Křestních jmen, která zaznamenala největší absolutní nárůst a pokles v oblíbenosti v daném roce  Počtu lidí, kteří dostali křestní jméno začínající daným písmenem v daném roce. Všechny implementované funkce uložte do souboru du05_02.py a nahrajte do příslušné odevzdávárny v ISu. (10b) 3. Přiložený soubor christmas.png obsahuje tajný program, jehož instrukce jsou zakódovány v obrazové podobě následujícím způsobem:  Obrázek je tvořen souvislou posloupností polí o rozměrech 30 x 30 pixelů, které mají stejnou barvu. Posloupnost začíná v levém horním rohu, postupuje směrem vpravo po řádcích a po konci řádku pokračuje o řádek níže opět zleva. Nad touto posloupností polí je zaveden pojem předchozího a následujícího pole, což jsou pole, která bezprostředně předcházejí a následují v dané posloupnosti polí. První pole tedy nemá žádné předchozí pole a poslední pole zase nemá žádné následující pole.  Barvy polí kódují instrukce udávající směry a délky skoků na pole s dalšími instrukcemi programu. Z hodnot barevných složek se určí nejnižší bity a podle následující tabulky se zjistí směr pohybu: R G B Směr pohybu 1 1 1 Vlevo nahoru 1 1 0 Vpravo dolů 1 0 1 Vlevo dolů 1 0 0 Vpravo nahoru 0 1 1 Dolů 0 1 0 Nahoru 0 0 1 Vlevo 0 0 0 Vpravo  Vzdálenost skoku v daném směru pak udává předchozí pole, pokud existuje, a to následovně: - Je-li hodnota červené složky lichá, pak se skočí o G mod 4 + 1, kde G je hodnota zelené složky a mod označuje operaci zbytku po celočíselném dělení. - Jinak se skočí o 1 (tj. i v případě, že předchozí pole neexistuje).  První instrukce programu je kódována barvou prvního pole zavedené posloupnosti, přičemž program skončí v případě skoku na neexistující pole (tj. na pole před začátkem nebo za koncem zavedené posloupnosti). Výstupem programu je obrázek s totožným rozložením polí jaké má vstupní obrázek, který obsahuje modré pozadí a žluté popředí určené těmi poli, která byla navštívena během interpretace programu. Napište funkci, která načte přiložený soubor christmas.png, vykoná program v něm uložený a zobrazí jeho výstup. Funkci uložte do souboru du05_03.py a nahrajte do příslušné odevzdávárny v ISu. (15b)