Odborné články Gymnaziální vzdělávání Python v hudbě: určení intervalů pomocí podmínek a logických operátorů
Odborný článek

Python v hudbě: určení intervalů pomocí podmínek a logických operátorů

4. 3. 2026
Gymnaziální vzdělávání
Autor
Pavel Konrád

Anotace

Pomocí programovacího jazyka Python prozkoumáme možnosti, jak přenášet a kódovat informace, které budeme demonstrovat na hudebních analogiích. Ve čtvrté aktivitě ze série Python v hudbě si ukážeme, co jsou to podmínky, jak s nimi pracujeme a jak pomocí nich můžeme větvit program, čímž vytvoříme první algoritmus.
  • Typ materiálu: cvičení 
  • Škola: gymnázium
  • Ročník: kvarta
  • Metody: výklad
  • Vzdělávací obor: informatika
  • Tematický okruh: data, informace a modelování – kódování a přenos dat 
  • Očekávané výstupy: Rozlišuje a používá různé datové typy. Navrhuje a porovnává různé způsoby kódování z různých hledisek a vysvětlí proces a úskalí digitalizace.
  • Časová dotace:
    • Výuka: 45 minut
    • Příprava: 30 minut
  • Pomůcky, hardware a software
    • Učitel: dataprojektor, výpočetní zařízení (PC, notebook, tablet)
    • Žák: výpočetní zařízení (PC, notebook, tablet)

Zdroje:

  • https://www.w3schools.com/python

Potřebné vstupní znalosti a dovednosti

Oborové

  • Základní orientace v programovacím jazyku Python
  • Znalost proměnných a datových typů

Digitální dovednosti

  • Pokročilé ovládání počítače
  • Schopnost postupovat podle návodu
  • Orientace v základní terminologii algoritmizace a programování

Vzdělávací cíle:

  • Vytvořit funkční a praktický algoritmus za pomoci podmínek a logických operátorů 
  • Přiřadit význam abstraktní informaci pomocí základních programovacích technik
  • Umět zakomponovat proměnné, seznamy a pomocí metod s nimi kreativně pracovat při řešení praktického problému

Přínos využití digitálnícg technologií

Logické operátory a pravdivostní hodnoty jsou základní operace, které můžeme použít při práci s daty. Díky skládání algoritmu nemusíme vypisovat stále se opakující informace, které tak necháváme generovat program automaticky. 

Metodická poznámka

Tato aktivita navazuje na sérii Python v hudbě – metody a seznamy v půltónech. V této aktivitě se studenti učí propojit naučené dovednosti z předchozích cvičení a výkladů ve funkční algoritmus. Tento algoritmus má otevřít téma ohledně práce s daty a možnosti využití, kde názorně ukazuje, že programování nemusí být tak těžké, jak se na první pohled zdá. Alespoň ve svých principech.

První polovina hodiny:

Učitel vysvětluje, jak můžeme vyjádřit pravdivostní hodnotu v jazyce Python. Blíže popisuje, jak můžeme porovnávat jednotlivé výrazy:

A = 5

B = 4

A > B

B < A

A =! B

B += 1 == A

Učitel pokračuje ve výkladu, kde rozvine téma do větvení programu pomocí podmínky if. Vysvětluje, že if je základním stavebním kamenem programování, kde se rozhoduje, jak má program postupovat. Nezapomene připomenout, že kód se zpracovává procedurálně, tedy příkaz po příkazu. Názorně ukáže, jak můžeme vytvořit podmínku v jazyce Python.

Podmínka Výraz Operátor Výraz2 :

4mezery    To co se má vykonat, pakliže je splněná podmínka.

if A == B:
print(„A je skutečně stejné jako B“)

Učitel nezapomene připomenout důležitost správné syntaxe a připomene, že Python nepoužívá složené závorky a středníky k oddělení jednotlivých podmínek jako jiné programovací jazyky, ale namísto toho používá tabulátor k oddělení jednotlivých logických celků.

V momentě, kdy si žáci poznamenají správnou syntax, učitel přechází k názorné ukázce, k čemu podmínky v programu používáme, a nechává studentům prostor pro vlastní inciativu a zkoumání.

A = 1

B = 1

If A == B:

Print(„A má hodnotu 1, stejně jako B.“)

If A != B:

Print(„A a B nemají stejnou hodnotu.“)

Dalším stupněm podmínek, jak můžeme program větvit, je funkce elif. Učitel vysvětluje, že pakliže chceme do algoritmu zařadit více podmínek, děláme to právě pomocí funkce elif. Elif můžeme přeložit jako nebo.

A = 1

B = 1

If A == 1:

Print(„A má hodnotu 1.“)

elif B == 1:

Print(„B má hodnotu také 1.“)

Elif A == B:

Print(„A má hodnotu 1, stejně jako B.“)

Můžeme nechat studenty, aby různě tvrzení upravovali, a také zkusíme názorně demonstrovat, co se stane, když nějakou podmínku posuneme tabulátorem. Vysvětlíme, že určitou akci můžeme podmínit určitou podmínkou, a ta se vykoná, jen když bude jiná podmínka splněna.

A = 1

B = 0

If A == 1:

Print(„Jestliže A má hodnotu 1, tak se B změní také na hodnotu 1 a bude se dít něco dále.“)

B = 1

If B == 1:

Print(„B změnilo hodnotu na 1, protože byla splněná podmínka, že A má hodnotu 1. Kdyby A nemělo hodnotu 1, B by nezměnilo hodnotu.“)

Elif A == B:

Print(„A má hodnotu 1, stejně jako B, protože byla splněná podmínka, že A == 1.“)

IF A =! 1:

Print(„Jelikož A není 1, tak B nikdy nebude 1, protože se nesplní podmínka.“)

Druhá část hodiny:

Učitel zadá samostatnou práci, při níž studenti pracují na vyřešení problému. Pracují s vytvořenými zápisky a zkoušejí je poskládat do správné syntaxe. Studenti minule přišli na postup, jak zjistit rozdíl mezi dvěma tóny. V této aktivitě zkusí složit algoritmus, který pomocí podmínek vyhodnotí rozdíl mezi dvěma tóny, a podle toho vypíše, o jaký se jedná interval. Učitel může úlohu se studenty rozpracovat a vypracování uložit jako domácí úkol.

Zadání:

Sestav algoritmus, který vyhodnotí, kolik půltónů se nachází mezi zadanými tóny. Na základě toho napiš jednoduchý program, který pomocí podmínek if a elif vytvoří proměnnou interval, do které uložíš jméno daného intervalu. Na konci programu odešli na výstup print (interval).

1 půltón = malá sekunda

2 půltóny = velká sekunda

3 půltóny = malá tercie

4 půltóny = velká tercie

5 půltónů = kvarta

6 půltónů = zvětšená kvarta

7 půltónů = kvinta

8 půltónů = malá sexta

9 půltónů = velká sexta

10 půltónů = malá septima

11 půltónů = velká septima

12 půltónů = oktáva

Použij kód z minulého cvičení a rozšiř ho následujícím způsobem:

#Vytvoříme proměnnou scale, do které uložíme všechny tóny

scale = ["c", "c#", "d", "d#", "e", "f", "f#", "g", "g#", "a", "bb", "b",]

#vytvoříme vstupy, které bude zadávat uživatel

x = input("Zde vložte první interval:")

y = input("Zde vložte druhý interval:")

#pomocí metody index vybereme z proměnné "scale" zadaný interval

tone1 = scale.index(x)

tone2 = scale.index(y)

#Vytvoříme proměnnou "vysledek", pomocí které spočítáme rozdíl mezi intervaly. Tím zjistíme, kolik je mezi tóny půltónů.

vysledek = tone2 - tone1

Postup:

  1. Náš program z minula nám zjistí, kolik půltónů je mezi zadanými tóny v proměnných x a y.
  2. V proměnné vysledek máme tedy uložené číslo. Např. vysledek = 3.
  3. Utvoříme postupně podmínky, které nám ošetří všechny možné hodnoty výsledku. To znamená, že pakliže výsledek bude číslo 1–12, proměnná interval do sebe uloží jméno určitého intervalu.

Řešení:

if vypocet == 1:

interval = "malá sekunda"

elif vypocet == 2:

interval = "velka sekunda"

elif vypocet == 3:

interval = "mala tercie"

elif vypocet == 4:

interval = "velka tercie"

elif vypocet == 5:

interval = "kvarta"

elif vypocet == 6:

interval = "zvětšená kvarta"

elif vypocet == 7:

interval = "kvinta"

elif vypocet == 8:

interval = "malá sexta"

elif vypocet == 9:

interval = "velka sexta"

elif vypocet == 10:

interval = "mala septima"

elif vypocet == 11:

interval = "velka septima"

print(interval)

Hodnocení:

Student ukládá vytvořený kus kódu do poznámkového bloku a odesílá učiteli na e-mail. Učitel hodnotí, zda:

  • student pochopil větvení programu a jak ho zapisovat do syntaxe;
  • student dokázal vyřešit slovní úlohu;
  • proměnná interval obsahuje správný interval z tabulky ze zadání;
  • student našel jiné kreativní řešení zadaného problému.

Úloha 1: Vytvoř jednoduchý kód, který na základě porovnání hodnoty v proměnné vysledek utvoří proměnou interval, do které uloží jméno intervalu podle počtu půltónů.

Zkušenosti s použitím materiálu

Studenti narazí při prozkoumávání podmínek na různá řešení a chyby. Čím více program větvíme, tím více řešení můžeme získat. Tento kód funguje pouze na určení intervalů směrem nahoru. Pakliže je první interval vyšší než druhý, kód nebude fungovat správně. V dalších cvičeních se studenti seznámí s funkcí else, která jim pomůže ošetřit tyto nepředvídatelné vstupy.

Autor
Pavel Konrád

Hodnocení uživatelů

Článek nebyl prozatím komentován.

Váš komentář

Pro vložení komentáře je nutné se nejprve přihlásit.

RVP do 2024

Očekávané výstupy:

Materiály s klíčovým slovem NPO 3.1 DIGI vytvořil tým metodiků v projektu Podpora škol v kontextu digitalizace (Národní plán obnovy 3.1 DIGI) pro podporu pedagogů při ICT revizích.

Další informace, metodické materiály i inspiraci do výuky jednotlivých předmětů i napříč předměty najdete na webu https://digitalizace.rvp.cz/