Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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

courses/bab37zpr/zkouska/01.txt · Last modified: 2022/01/31 08:48 by viteks