Ukázkový test

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).

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. [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.

Příklad:

def priklad3 (text, klic):
    # vase implementace
    pass
 
# priklad volani
ret = funkce3 ('PAMPELISKA', 'klic')
# overeni vysledku
print (ret)
# (True, "ZLUROWQUUL")

courses/bab37zpr/zkouska/01.txt · Last modified: 2023/09/25 09:10 by viteks