====== Zkouška 31.01.2022 ====== Jednotlivé funkce (včetně případných podpůrných) pište do jednoho souboru pojmenovaného {login}.py a nahrajte do BRUTE (ZK). ---- 1. Napište funkci, jejímž argumentem je matice celých čísel obecné velikosti. Návratovou hodnotou funkce je seznam, ve kterém jsou prvky z původní matice vybrané jako spirála ve směru hodinových ručiček (viz příklad). **Příklad:** def priklad1 (matice): # vase implementace pass # volani matice ret = priklad1([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) print (ret) # vytiskne nasledujici: # [1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 2. Napište funkci, která vykreslí ASCII artový objekt - dva čtverce. Funkce má tři parametry: velikost čtverců, souřadnici, kde začíná druhý čtverec a znak, ze kteréch je objekt vykreslen. Souřadný systém začíná jedničkou, největší vzdálenost mezi čtverci je 10. Nejmenší velikost čtveců je 3, největší 10. Čtverce se nepřekrývají. Ošetřete hodnoty a datové typy parametrů, pokud nesplňujíj požadavky, funkci ukončete a oznamte uživateli chybu (např. výjimka). **Příklad:** def priklad2 (velikost, zacatek): # vase implementace pass # volani funkce priklad2 (5, 3, 'X') XXXXXXX X X X X X X X X X X X X XXXXXXX priklad2 (5, 7, 'o') ooooo ooooo o o o o o o o o o o o o ooooo ooooo 3. Napište funkci, který provede kódování pomocí Vigenèrovy šifry. Šifrování probíhá posunem písmen podobně jako u Caesarovy šifry s tím rozdílem, že Vigenèrova šifra využívá klíč. Pro posun písmen zdrojového textu se postupně používají písmena z klíče: ''a'' posouvá o 0, ''b'' o 1, ... ''z'' o 25. Pokud je klíč kratší než zdrojový text, jsou použita písmena z klíče opět od začátku. Znaky zdrojového textu jsou z množiny A-Za-z, klíč je pouze z malých písmen. Návratovou hodnotou funkce je tuple - prvním členem je logická hodnota ''True'', pokud nedošlo k chybě nebo ''False'' při nesprávně zadaných argumentech funkce, druhým členem je hodnota ''None'' nebo zakódovaný řetězec. **Příklad:** def funkce3 (text, klic): # vase implementace pass # priklad volani ret = funkce3 ('pampeliska', 'klic') # overeni vysledku print (ret) # (True, "ZLUROWQUUL")