Zkouška 14.1.2020

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


1. Napište program, který hledá slova s nejvyšším počtem samohlásek v textovém souboru. Program načte textový soubor (cesta k souboru je zadána jako konstanta) a vypíše jednu řádku:

N slovo

kde N je počet samohlásek a slovo je detekované slovo s maximálním počtem samohlásek. Je-li takových slov víc, vypíše libovolné z nich. Na vstupu bude vždy alespoň jedno slovo. Slova jsou zapsána pouze ASCII znaky ('a-zA-Z') a jsou oddělená jednou či více mezerami.

Hodnocení: 8 bodů


2. Napište program, který který v poli celých čísel hledá nejbližší vyšší číslo k vybranému prvku pole. Nejbližší vyšší číslo je prvek pole, pro který platí:

Vstup: dvě řádky na standardním vstupu

  1. pole celých čísel oddělených mezerou
  2. jedno celé kladné číslo, které označuje index do pole

Výstup: jedna řádka na standardní výstup, která obsahuje

Prvky v poli jsou indexovány od 0. Vstupy jsou vždy zadány správně, tj. vstupní pole má vždy nenulovou délku a index vstupního prvku je vždy validní.

Vstup:

 
1 2 3 5 11 6 9 7 10 5 6
6
Výstup:
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ů


3. Napište program, který vypíše sloupce 2D matice reprezentované 2D seznamem seřazené 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

Hodnocení: 8 bodů


4. Napište program, který načte ze standardního vstupu textový řetězec a vypíše řetězec složený z prvních dvou a posledních dvou znaků vstupu.

Vstup: Hello world

Výstup: Held

Hodnocení: 4 body


5. Napište program pro konverzi arabského čísla v rozsahu 0 - 3999 na římské. V programu můžete využít následující seznam:

conv = [[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
        [ 100, 'C'], [ 90, 'XC'], [ 50, 'L'], [ 40, 'XL'],
        [  10, 'X'], [  9, 'IX'], [  5, 'V'], [  4, 'IV'],
        [   1, 'I']]

Hodnocení: 8 bodů


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

Vstup: jenom tak klidne levituji ve vzduchu

Výstup: Jenom Tak Klidne Levituji Ve Vzduchu

Hodnocení: 4 body