Search
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).
{login}.py
{login}
Pro práci můžete použít vlastní počítač. Pokud na lokálním PC není dostupný vhodný editor, můžete využít např. online JupyterLab. Pokud v učebnách nelze spustit Visual Studio Code z plochy, je třeba ho najít na disku (C:\Program Files\…).
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.
Ukázka:
def priklad1 (znak, vyplnit = True) # 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
Bodové hodnocení: 8 bodů
Zadání: Napište funkci, která provede Burrowsovu–Wheelerovu transformaci. Princip transformace spočívá v tom, že se provedou všechny možné rotace zadaného textu (včetně ukončovacího znaku) a tyto dílčí rotace se lexikograficky seřadí. Výstupem tranformace je pak řada posledních písmen jednotlivých rotací. Funkce ověří, že na vstupu je textový řetězec ukončený znakem ^ - pokud tomu tak není, vhodným způsobem ukončí činnost (např. výjimka).
^
def priklad2 (text) # vase implementace pass priklad2 ('BANANA^') rotace: BANANA^ ^BANANA A^BANAN NA^BANA ANA^BAN NANA^BA ANANA^B serazeno: ANANA^B ANA^BAN A^BANAN BANANA^ NANA^BA NA^BANA ^BANANA vysledek: BNN^AAA
Zadání: Napište funkci, který která provede seskupení hodnot ze seznamu, který je argumentem funkce. Skupiny stejných prvků pak tvoří nové seznamy v rámci jednoho seznamu.
Argumentem funkce je seznam nenulové délky, ověřte na vstupu, v případě nesplění ohlašte chybu a návratovou hodnotou je prázdný seznam.
Seznam na vstupu může obsahovat hodnoty libovolných datových typů.
def priklad3 (data): pass # priklad volani ret = priklad3 ([1, 2, 1, 3, 5, 1, 6, 9, 7, 10, 5, 6]) # overeni vysledku print(ret) [[1, 1, 1], [2], [3], [5, 5], [6, 6], [7], [9], [10]] ret = priklad3 (10) ERROR print(ret) []