====== Zkouška 5.2.2024 ====== Jednotlivé funkce (včetně případných podpůrných) pište do jednoho souboru pojmenovaného ''{login}.py'' a nahrajte do BRUTE (ZK). ''{login}'' nahraďte vaším přihlašovacím jménem (bez složených závorek). Pokud na lokálním PC není dostupný vhodný editor, můžete využít např. online [[https://jupyter.org/try|JupyterLab]]. V učebnách nelze spustit Visual Studio Code z plochy, je třeba ho najít na disku (C:\Program Files\...). Odevzdávaný program nemusí být zcela funkční, je možné ohodnotit i jeho dílčí části. ===== 1. příklad ===== **Bodové hodnocení:** 6 bodů **Zadání:** Napište funkci, která vykreslí ASCII artový objekt - lodičku. Funkce má dva argumenty: znak, kterým je kreslena a příznak, zda je dolní část vyplněna. Pro řešení je třeba použít cykly, přímý výstup na obrazovku nebude uznán. **Ukázka:** def priklad1 (znak, vyplnit = False) # vase implementace pass priklad1 ('X') X X XX XX XXX XXX XXXX XXXX XXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX priklad1 ('O', False) O O OO OO OOO OOO OOOO OOOO OOOOO OOOOO OOOOOO OOOOOO OOOOOOO OOOOOOO OOOOOOOO OOOOOOOO OOOOOOOOO OOOOOOOOO OOOOOOOOOO OOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOOOOOO ===== 2. příklad ===== **Bodové hodnocení:** 6 bodů **Zadání:** Napište funkci, který hledá v textovém řetězci slova s nejvyšším počtem samohlásek. Pokud je slov s největším počtem samohlásek více, vypíší se všechna. Slova jsou zapsána pouze ASCII znaky ('a-zA-Z') a jsou oddělená jednou či více mezerami. **Ukázka:** def priklad2 (text) pass priklad2 ('ahoj jak se mas') ahoj ===== 3. příklad ===== **Bodové hodnocení:** 8 bodů Zadání: Napište funkci, který který v seznamu celých čísel hledá nejbližší vyšší číslo k vybranému prvku seznamu. Nejbližší vyšší číslo je prvek seznamu, pro který platí: * jeho hodnota je vyšší než hodnota zadaného prvku seznamu, * absolutní rozdíl indexů zadaného prvku a tohoto prvku je minimální (je nejblíže) * pokud existují dva prvky, které splňují první dvě podmínky, pak je to menší z nich (menší podle hodnoty). Návratovou hodnotou funkce je ''tuple'', jehož * první položkou je logická hodnota ''False'' v případě, že došlo k nějaké chybě (seznam měl nulovou délku, nebyl platný zadaný index, nebo v seznamu není větší číslo) a logické hodnota ''True'' v případě, že je vše v pořádku * druhou položkou je nalezené číslo nebo ''None'' Zkontrolujte správnost zadaných dat (datový typ list nenulové délky, který obsahuje čísla). **Ukázka:** def priklad3 (list, index): pass # priklad volani ret = priklad3 ([1, 2, 3, 5, 11, 6, 9, 7, 10, 5, 6], 6) # overeni vysledku print(ret) (True,10) # Vysvětlení: Nejbližšími vyššími čísly čísla 9 (číslo s indexem 6) jsou čísla 10 a 11, vzdálené od indexu 6 o dvě pozice. Vybírám tedy menší z nich. ret = priklad3 ([2, 3], 10) print(ret) (False, None)