Warning
This page is located in archive.

Zkouška 16.1.2020

Pokyny: Jednotlivé programy pojmenujte číslem příkladu (01.py, 02.py, …), zabalte do jednoho zip souboru a nahrajte do BRUTE (zkouska). Pokud budete nahrávat samostatné soubory, napište na začátek souboru do komentáře, o který příklad se jedná. Nepoužívejte v názvech složek a souborů diakritiku.


1. Napište program, 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 vigenere(text, klic):
    pass
 
print(vigenere('pampeliska', 'klic'))
# ZLUROWQUUL


2. Napište program, který převede víceslovná výrazy na lower Camel Case. Příklad:

def lcc (text):
    pass
 
print(lcc('jedna pani povidala'))
# jednaPaniPovidala


3. Napište program, který přečte ze souboru matici celých čísel a vypíše ji následujícím způsobem:

 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


4. 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átu YYYYMMDD. Pořadí argumentů je libovolné, výsledkem je kladné číslo. V případě nesprávného formátu vstupního data program vypíše ERROR.


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


6. Napište funkci, která najde ve větě slovo s nejmenším počtem souhlásek. Slova jsou oddělena mezerou.

courses/bab37zpr/zkouska/zk03.txt · Last modified: 2020/01/16 09:10 by viteks