Am Sa Oktober 20 2018, 12:46:47 schrieb Stefan Ram:
Gerade habe ich zu meinem Kurs das folgende Programm zum Gehörtraining als Programmbeispiel hinzugefügt.
Man beachte, wie darin Dinge, die man normalerweise mit Hilfe von Vergleichsoperatoren und Kontrollstrukturen ausdrücken würde, ohne Vergleichsoperatoren und Kontrollstrukturen formuliert werden, da Vergleichsoperatoren und Kontrollstrukturen an der Stelle des Kurses, an der dieses Skript vorgestellt werden soll, noch nicht behandelt wurden. Grundrechenarten (einschließlich »+« und »*« für Strings), Funktionsaufrufe (sowie auch Kommentare, Namen, Zuweisungen und from-Importe) wurden hingegen schon behandelt ...
from winsound import Beep from random import random from math import isclose
Zu früh für Vergleichsoperatoren, aber dann isclose() aus dem Hut zaubern...
quinte = 2/3 grosse_terz = 4/5
erste_frequenz_in_Hz = int( random() * 1000 + 110 ) intervall = int( random() * 2 ) # 1 = Quinte, 0 = grosse Terz frequenzverhaeltnis = intervall * quinte +( 1 - intervall )* grosse_terz zweite_frequenz_in_Hz = int( erste_frequenz_in_Hz * frequenzverhaeltnis )
dauer_in_millisekunden = 400 Beep( erste_frequenz_in_Hz, dauer_in_millisekunden ) Beep( zweite_frequenz_in_Hz, dauer_in_millisekunden )
eingabe = input( "War dies eine Quinte (q) oder eine grosse Terz (t)? " ) print( 'Es war', intervall * 'eine Quinte.' +( 1 - intervall )* 'eine Terz.' ) richtige_antwort = intervall * 'q' +( 1 - intervall )* 't' bewertung = isclose( 0, ord( eingabe )- ord( richtige_antwort )) print\ ( 'Ihre Antwort war', bewertung * 'richtig.' +( 1 - bewertung )* 'falsch.' )
Wäre doch gelacht, wenn du deine Studenten nicht schon mit der ersten Lektion zur Verzweiflung bringst ;)