====== Zkouška 19.01.2021 ====== Jednotlivé funkce pište do jednoho souboru pojmenovaného {login}.py a nahrajte do BRUTE (ZK1). 1. 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 funkce1 (list): # vase implementace pass # priklad volani ret = funkce1 ([[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 ----- 2. 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 funkce2 (list): # vase implementace pass # priklad volani ret = funkce2 (1982) # overeni vysledku print (ret) # (True, "MCMLXXXII") Hodnocení: 8b ----- 3. Napište funkci, která určí počet samohlásek ve slovech textu. Návratovou hodnotou funkce je slovník (viz příklad). Platí, že slova mají alespoň dvě písmena, která jsou z množiny ASCII znaků ('a-zA-Z'), a jsou oddělena jednou nebo více mezerami. **Příklad:** def funkce3 (string): # vase implementace pass # priklad volani ret = funkce3 ("Ahoj jak se mas na zkousce z ZPR") # overeni vysledku print (ret) # {'ahoj': 2, 'jak': 1, 'se': 1, 'mas': 1, 'na': 1, 'zkousce': 3, 'ZPR': 0} Hodnocení: 8b ----- 4. Napište funkci, který který v seznamu celých čísel hledá nejbližší vyšší číslo k vybranému prvku seznamu. Nejbližší vyšší číslo je prvek seznamu, pro který platí: * jeho hodnota je vyšší než hodnota zadaného prvku seznamu, * absolutní rozdíl indexů zadaného prvku a tohoto prvku je minimální (je nejblíže) * pokud existují dva prvky, které splňují první dvě podmínky, pak je to menší z nich (menší podle hodnoty). Návratovou hodnotou funkce je tuple, jehož * první položkou je logická hodnota ''False'' v případě, že došlo k nějaké chybě (seznam měl nulovou délku, nebyl platný zadaný index, nebo v seznamu není větší číslo) a logické hodnota ''True'' v případě, že je vše v pořádku * druhou položkou je nalezené číslo nebo ''None'' **Příklad:** def priklad4 (list, index): pass # priklad volani ret = priklad4 ([1, 2, 3, 5, 11, 6, 9, 7, 10, 5, 6], 6) # overeni vysledku print(ret) # (True,10) **Vysvětlení:** Nejbližšími vyššími čísly čísla 9 (číslo s indexem 6) jsou čísla 10 a 11, vzdálené od indexu 6 o dvě pozice. Vybírám tedy menší z nich. Hodnocení: 8 bodů ---- 5. Napište funkci, jejímž argumentem bude seznam čí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 priklad5 (list): pass # priklad volani ret = priklad5 ([1, 2, 3, 5, 11, 6, 9, 7, 10, 5, 6]) # overeni vysledku print(ret) # (True,5.88) Hodnocení: 4 body ---- 6. Napište funkci, jejíž návratovou hodnotou bude textový řetězec složený z prvních dvou a posledních dvou znaků textového žetězce, předaného funkci jako parametr a logická hodnota, reprezentující správnou fukcionalitu funkce. **Příklad:** def priklad6 (string): pass # priklad volani ret = priklad6 ('Hello world') # overeni vysledku print(ret) # (True, 'Held') Hodnocení: 4 body ----