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