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 12.01.2021

Jednotlivé funkce pište do jednoho souboru pojmenovaného {login}.py a nahrajte do BRUTE (ZK1).


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

Hodnocení: 8 bodů


2. Napište funkci, která spočítá rozdíl ve dnech mezi dvěma daty v rámci jednoho nepřestupného roku. Data jsou zadána ve formě textových řetězců ve formátu YYYYMMDD, pořadí argumentů je libovolné. Návratová hodnota je tuple, jehož první položka je je kladné číslo reprezentující rozdíl vstupních letopočtů. Druhá hodnota je True v případě, že nedošlo k žádné chybě a False v případě nesprávného formátu vstupních data.

Příklad:

def priklad2 (datum1, datum2):
    # vase implementace
    pass
 
# priklad volani
ret = priklad2 ('20210101', '20210110')
print(ret)
# vytiskne nasledujici:
# (9, True)

Hodnocení: 8 bodů


3. Napište funkci pro převod čísla v rozsahu 1 - 1999 reprezentovaného římskými číslicemi do vyjádření v arabských číslicích.

Příklad:

def priklad3 (riman):
    # vase implementace
    pass
 
# priklad volani
ret = priklad3 ('MDIV')
print (ret)
# vytiskne nasledujici:
# 1504

Hodnocení: 8 bodů


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

Příklad:

def priklad4 (text, klic):
    # vase implementace
    pass
 
# priklad volani
ret = priklad4 ('pampeliska', 'klic')
print (ret)
# vytiskne nasledujici:
# ZLUROWQUUL

Hodnocení: 8 bodů


5. Napište funkci pro kapitalizaci všech slov v textovém řetězci.

Příklad:

def priklad5 (text):
    # vase implementace
    pass
 
# priklad volani
ret = priklad5 ('jenom tak klidne levituji ve vzduchu')
print (ret)
# vytiskne nasledujici:
# Jenom Tak Klidne Levituji Ve Vzduchu

Hodnocení: 4 body


6. Napište funkci, jejímž argumentem bude seznam čísel. V seznamu čísel nalezněte minimální a maximální hodnotu, vyřaďte je ze seznamu a vypočítejte ar. půměr.

Příklad:

def priklad6 (data):
    # vase implementace
    pass
 
# priklad volani
ret = priklad6 ([10, 4, 2, 3, 5, 6, 2, 1])
print (ret)
# vytiskne nasledujici (na presnosti nezalezi):
# 3.666667

Hodnocení: 4 body


courses/bab37zpr/zkouska/02.txt · Last modified: 2021/01/12 11:12 by viteks