Search
1. [6 bodů] 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. [8 bodů] 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).
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. [6 bodů] 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.
def priklad3 (text, klic): # vase implementace pass # priklad volani ret = funkce3 ('PAMPELISKA', 'klic') # overeni vysledku print (ret) # (True, "ZLUROWQUUL")