Ein Programm mit Benutzereingaben
Vorgaben im Programm
Im bisher benutzten Programm zur Berechnung der Blutalkoholkonzentration sind die Ausgangsdaten fest vorgegeben.
# Initialisierung volumenGetraenk = 2 # Liter anteilAlkohol = 2.5 # Prozent massePerson = 50 # kg reduktionsfaktorJugendlicher = 0.6 # Verarbeitung masseAlkohol = 10*anteilAlkohol*volumenGetraenk*0.8 konzentrationAlkohol = masseAlkohol/(massePerson*reduktionsfaktorJugendlicher) # Ausgabe print('Die berechnete Alkoholkonzentration im Blut beträgt:') print(konzentrationAlkohol, 'Promille')
Das hat den Nachteil, dass das Programm nur für genau diese Daten den gesuchten BAK-Wert liefert. Interessanter wäre das Programm, wenn man es für beliebige (sinnvolle) Ausgangsdaten nutzen könnte.
Eingaben durch den Benutzer
Im folgenden Programm werden Benutzereingaben mit Hilfe des input
-Operators
an geeignete Variablen weitergegeben.
Was es mit dem float
-Operator auf sich hat, werden wir in den weiteren Abschnitten
klären.
# Eingabe print('Gib die Ausgangsdaten ein:') volumenGetraenk = float(input('Aufgenommene Flüssigkeitsmenge in Liter: ')) anteilAlkohol = float(input('Alkoholgehalt des Getränks in Prozent: ')) massePerson = float(input('Körpermasse in kg: ')) # Verarbeitung reduktionsfaktorJugendlicher = 0.6 masseAlkohol = 10*anteilAlkohol*volumenGetraenk*0.8 konzentrationAlkohol = masseAlkohol/(massePerson*reduktionsfaktorJugendlicher) # Ausgabe print('') print('Die berechnete Alkoholkonzentration im Blut beträgt:') print(konzentrationAlkohol, 'Promille')
Aufgabe 1
(a) Teste das Programm mit unterschiedlichen Eingabewerten.
(b) Der Reduktionsfaktor beträgt bei Frauen und Jugendlichen 0.6 und bei Männern 0.7. Ändere das Programm so ab, dass der Benutzer auch den Reduktionsfaktor eingeben kann. Mache dir auch klar, was ein größerer / kleinerer Reduktionsfaktor bewirkt.
(c) Was leistet das folgende Programm. Kannst du es durch eine Analyse des Quelltextes vorhersagen?
# Eingabe print('Gib die Ausgangsdaten ein:') volumenGetraenk = float(input('Aufgenommene Flüssigkeitsmenge in Liter: ')) anteilAlkohol = float(input('Alkoholgehalt des Getränks in Prozent: ')) massePerson = float(input('Körpermasse in kg: ')) geschlecht = input('Geschlecht (w/m): ') # Verarbeitung if geschlecht == 'w': reduktionsfaktorJugendlicher = 0.6 else: reduktionsfaktorJugendlicher = 0.7 masseAlkohol = 10*anteilAlkohol*volumenGetraenk*0.8 konzentrationAlkohol = masseAlkohol/(massePerson*reduktionsfaktorJugendlicher) # Ausgabe print('') print('Die berechnete Alkoholkonzentration im Blut beträgt:') print(konzentrationAlkohol, 'Promille')
Hinweis: Mit Fallunterscheidungen werden wir uns detaillierter in weiteren Abschnitten beschäftigen.
(d) Manche Eingaben werden mit dem input
-Operator und dem float
-Operator
realisiert, andere Eingaben erfordern nur die Verwendung des input
-Operators.
Woran könnte das liegen?