====== Zkouška 26.01.2021 ====== Jednotlivé funkce pište do jednoho souboru pojmenovaného {login}.py a nahrajte do BRUTE (ZK). ---- 1. Napište funkci, která naplní seznam šachovnicí o velikosti N x M, maximální velikost je 10x10. Při plnění seznamu jsou použity dva různé ASCII znaky. Znaky a velikost šachovnice jsou argumenty funkce. 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 seznam naplněný znaky **Příklad:** def funkce1 (a, b, c, d): # vase implementace pass # priklad volani ret = funkce (8, 3, '#', 'o') # overeni vysledku print(ret) # (True, [['#', 'o', '#', 'o', '#', 'o', '#', 'o'], ['o', '#', 'o', '#', 'o', '#', 'o', '#'], ['#', 'o', '#', 'o', '#', 'o', '#', 'o']]) Hodnocení: 8 bodů ---- 2. Napište funkci, která seřadí sloupce matice reprezentované seznamem sestupně podle součtu prvků. Pokud jsou v matice dva sloupce se stejným součtem, vypíšou se v libovolném pořadí. **Vstup:** 1 2 3 4 3 4 3 5 3 5 1 8 **Výstup:** 4 5 8 2 4 5 3 3 1 1 3 3 **Příklad:** def funkce2 (list): # vase implementace pass # priklad volani ret = funkce2 ([[1, 2, 3, 4], [3, 4, 3, 5], [3, 5, 1, 8]]) # overeni vysledku print (ret) [[4, 5, 8], [2, 4, 5], [3, 3, 1], [1, 3, 3]] Hodnocení: 8b ----- 3. Napište funkci pro konverzi arabského čísla v rozsahu 0 - 3999 na římské. Návratovou hodnotou je tuple, jehož první položkou je logická hodnota ''False'' v případě, že na vstupu nesplňuje pořadavky a druhou položkou je převedený řetězec nebo ''None''. **Příklad:** def funkce3 (list): # vase implementace pass # priklad volani ret = funkce3 (1982) # overeni vysledku print (ret) # (True, "MCMLXXXII") Hodnocení: 8b ----- 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. 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 funkce4 (text, klic): # vase implementace pass # priklad volani ret = funkce4 ('pampeliska', 'klic') # overeni vysledku print (ret) # (True, "ZLUROWQUUL") Hodnocení: 8 bodů ---- 5. Napište funkci pro kapitalizaci všech slov v textovém řetězci. **Příklad:** def funkce5 (text): # vase implementace pass # priklad volani ret = funkce5 ('jenom tak klidne levituji ve vzduchu') print (ret) # Jenom Tak Klidne Levituji Ve Vzduchu Hodnocení: 4 body ---- 6. Napište funkci, jejímž argumentem bude množina (''set'') čísel. Návratovou hodnotou bude aritmetický průměr čísel seznamu, ze kterého bude vyřazena minimální a maximální hodnota a logická hodnota, reprezentující výskyt chyby (''False'') nebo správné funkcionality (''True''). V případě chyby bude místo aritmetického průměru ''None''. **Příklad:** def funkce6 (data): # vase implementace pass # priklad volani ret = funkce6 ({10, 4, 2, 3, 5, 6, 2, 1}) # overeni vysledku print (ret) # vytiskne nasledujici (na presnosti nezalezi): # (True, 4) Hodnocení: 4 body ----