Warning
This page is located in archive. Go to the latest version of this course pages.

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í:

  • jeho hodnota je vyšší než hodnota zadaného prvku pole,
  • 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).

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

  • hodnotu nejbližšího vyššího čísla (pokud existuje)
  • řetězec 'NaN' (bez uvozovek), pokud žádné vyšší číslo neexistuje

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

courses/bab37zpr/zkouska/zk02.txt · Last modified: 2020/01/16 08:54 by viteks