Domáca úloha 4 Maximálny počet bodov: 40 Odovzdanie: Do 2. 12. 20:00 Pokyny Domácu úlohu odovzdávajte do odevzdávarny: https://is.muni.cz/auth/el/1433/podzim2018/IB111/ode/skupina_34_bojnak/ode_domaca_uloha_4/ Ustrážte si termín odovzdania, odevzdávarna sa v danom čase zatvára a úlohu potom nebude možné odovzdať. Prosím, dávajte si pozor na odpisovanie, ktoré sa tvrdo trestá. Môžete si pomáhať internetom, akurát pokiaľ nejaký kód odniekiaľ skopírujete, budem požadovať, aby ste mu rozumeli. Odporúčam vám ale, aby ste úlohu pre vaše dobro robili sami, tak sa najlepšie naučíte programovať. Znovu si nezabudnite prečítať pokyny na adrese https://www.fi.muni.cz/IB111/?p=dupokyny a riadiť sa nimi pri odovzdávaní. V prípade akýchkoľvek nejasností ma neváhajte kedykoľvek kontaktovať. Opäť prajem veľa šťastia :) Zadanie V študijných materiáloch k tomuto predmetu nájdete súbor cats.txt. Tento vzorový súbor je použitý pri jednoduchom teste v šablóne du_4.py, do ktorej budete implementovať potrebnú funkcionalitu. Každá mačka má dané meno, rok narodenia, svoje deti a svoju matku. Otec nie je nikdy známy. Úloha naväzuje na úlohu rodokmeňov z prednášky. Odporúčam si to pozrieť v slajdoch. 1. Do funkcie read_data pridajte chýbajúcu funkcionalitu. Funkcia už má naprogramované načítavanie dát zo súboru. V danom for cykle premenná line reprezentuje vždy jeden riadok zo súboru. S daným súborom nemusíte teda nič priamo robiť, akurát v tomto cykle pracujete s jednotlivými riadkami toho súboru reprezentované stringami. Táto funkcia má vracať dvojicu slovníkov. V prvom budú uložené ako kľúče mená mačiek a ako hodnota vždy príslušný objekt reprezentujúci danú mačku. V druhom bude uložený ako kľúč názov útulku a ako hodnota bude zoznam mačiek (pozor, zoznam bude obsahovať objekty mačiek, nie len ich mená). Je jedno, v akom poradí mačky v zozname budú. Všetky objekty musia mať presne nastavené všetky svoje atribúty podľa daného súboru s mačkami. Daná trieda (štruktúra) nemusí byť kompletná, je možné, že je nutné do nej pre správnu funkcionalitu niečo doplniť. 2. Implementujte funkciu print_offsprings_tree, ktorá pre zadané meno mačky a slovník s mačkami (mená a objekty mačiek) vypíše danú mačku a všetkých jej potomkov. Každá nižšia úroveň bude odsadená od predchádzajúcej tabulátorom (samotná prvá mačka nebude oddelená vôbec, jej deti budú oddelení jedným, vnuci dvomi atď.). V tejto úlohe stačí ku každej mačke vypísať jej meno. 3. Implementujte funkciu print_shelter_cats, ktorá vezme ako argument slovník s útulkami a výpíše všetky mačky z daného útulku. Ku všetkým mačkám vypíše ich meno, rok narodenia a všetky jej deti (iba jednu úroveň, to znamená, že vnukov už nie). 4. Implementujte funkciu sort_shelter, ktorá pre zadané meno útulku a slovník útulkov vráti zoznam rokov narodenia mačiek daného útulku zoradené od najstaršieho roku po najmladší. 5. Implementujte funkciu find_eldest, ktorá pre zadanú mačku (objekt mačky) nájde jej najstaršieho priameho predka. Rada: Keď si stiahnete súbor du_4.py a cats.txt, majte ich v tej istej zložke. Súbory s mačkami si môžete vytvárať aj vlastné, dodržte ale formát súboru cats.txt.