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

Zkouška 5.2.2024

Jednotlivé funkce (včetně případných podpůrných) pište do jednoho souboru pojmenovaného {login}.py a nahrajte do BRUTE (ZK). {login} nahraďte vaším přihlašovacím jménem (bez složených závorek).

Pokud na lokálním PC není dostupný vhodný editor, můžete využít např. online JupyterLab. V učebnách nelze spustit Visual Studio Code z plochy, je třeba ho najít na disku (C:\Program Files\…).

Odevzdávaný program nemusí být zcela funkční, je možné ohodnotit i jeho dílčí části.

1. příklad

Bodové hodnocení: 6 bodů

Zadání: Napište funkci, která vykreslí ASCII artový objekt - lodičku. Funkce má dva argumenty: znak, kterým je kreslena a příznak, zda je dolní část vyplněna. Pro řešení je třeba použít cykly, přímý výstup na obrazovku nebude uznán.

Ukázka:

def priklad1 (znak, vyplnit = False)
    # vase implementace
    pass
 
priklad1 ('X')
 
             X X
            XX XX
           XXX XXX
          XXXX XXXX
         XXXXX XXXXX
        XXXXXX XXXXXX
       XXXXXXX XXXXXXX
      XXXXXXXX XXXXXXXX
     XXXXXXXXX XXXXXXXXX
    XXXXXXXXXX XXXXXXXXXX
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXX
  XXXXXXXXXXXXXXXXXXXXXXXXX
   XXXXXXXXXXXXXXXXXXXXXXX 
 
priklad1 ('O', False)
 
             O O
            OO OO
           OOO OOO
          OOOO OOOO
         OOOOO OOOOO
        OOOOOO OOOOOO
       OOOOOOO OOOOOOO
      OOOOOOOO OOOOOOOO
     OOOOOOOOO OOOOOOOOO
    OOOOOOOOOO OOOOOOOOOO
 
OOOOOOOOOOOOOOOOOOOOOOOOOOOOO
 O                         O
  O                       O
   OOOOOOOOOOOOOOOOOOOOOOO 

2. příklad

Bodové hodnocení: 6 bodů

Zadání: Napište funkci, který hledá v textovém řetězci slova s nejvyšším počtem samohlásek. Pokud je slov s největším počtem samohlásek více, vypíší se všechna. Slova jsou zapsána pouze ASCII znaky ('a-zA-Z') a jsou oddělená jednou či více mezerami.

Ukázka:

def priklad2 (text)
    pass
 
priklad2 ('ahoj jak se mas')
ahoj

3. příklad

Bodové hodnocení: 8 bodů

Zadání: 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

Zkontrolujte správnost zadaných dat (datový typ list nenulové délky, který obsahuje čísla).

Ukázka:

def priklad3 (list, index): 
    pass
 
# priklad volani    
ret = priklad3 ([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.
 
ret = priklad3 ([2, 3], 10)
print(ret)
(False, None)

courses/bab37zpr/zkouska/02.txt · Last modified: 2024/02/08 08:41 by viteks