Zdroje:
Potřebné vstupní znalosti a dovednosti
Oborové
Digitální dovednosti
Vzdělávací cíle:
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.
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.
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:
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:
Ú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.
Článek je publikován pod licencí Creative Commons - Uveďte původ-Neužívejte komerčně-Nezpracovávejte 4.0 .
Článek nebyl prozatím komentován.
Pro vložení komentáře je nutné se nejprve přihlásit.
Tento článek je zařazen do seriálu Python v hudbě.
Ostatní články seriálu:
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/

Národní pedagogický institut České republiky © 2025