Die Wetterstation
AFB I–IIDie Wetter-AG liest ihre Temperaturwerte in ein Programm ein. Mit „ende“ wird die Eingabe beendet.
anzahl = 0summe = 0eingabe = input("Temperatur (oder ende): ")while eingabe != "ende": summe = summe + float(eingabe) anzahl = anzahl + 1 eingabe = input("Temperatur (oder ende): ")print("Messwerte:", anzahl)print("Mittelwert:", summe / anzahl)
- Nenne die Bedingung der Schleife und die Zeile, die dafür sorgt, dass die Schleife überhaupt enden kann.
- Bestimme die Ausgabe, wenn nacheinander 12.5, 14, 9.5 und ende eingegeben werden.
- Erkläre, was passiert, wenn gleich zu Beginn „ende“ eingegeben wird, und wie man das Programm absichert.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Bedingung: eingabe != "ende". Zeile 7 (eingabe = input(…) im Rumpf) liest einen neuen Wert ein; nur dadurch kann die Bedingung falsch werden.
Erwartungshorizont zu Aufgabe b)
Der Rumpf läuft dreimal: summe = 12.5 → 26.5 → 36.0, anzahl = 1 → 2 → 3. Ausgabe:
Messwerte: 3 Mittelwert: 12.0
Erwartungshorizont zu Aufgabe c)
Die Bedingung ist schon beim ersten Prüfen falsch, der Rumpf läuft 0-mal. Dann ist anzahl = 0, und summe / anzahl führt zum ZeroDivisionError. Absicherung: die letzte Zeile durch eine Verzweigung ersetzen:
if anzahl > 0: print("Mittelwert:", summe / anzahl)else: print("Keine Messwerte eingegeben.")
Training für den Halbmarathon
AFB II–IIIJonas läuft im Sportverein. In der ersten Woche schafft er 3 km am Stück, danach will er jede Woche 1,5 km mehr laufen. Sein Ziel ist der Halbmarathon mit 21 km.
- Implementiere ein Programm, das Start-Strecke und wöchentliche Steigerung einliest und ausgibt, nach wie vielen Wochen erstmals mindestens 21 km erreicht werden.
- Überprüfe dein Programm mit den Eingaben 3 und 1.5 sowie mit 25 und 2. Gib jeweils das Ergebnis an und beurteile, ob es sinnvoll ist.
- Beurteile, was bei der Steigerung 0 passiert, und ergänze eine Absicherung.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
start = float(input("Start-Strecke in km: "))plus = float(input("Steigerung pro Woche in km: "))km = startwochen = 0while km < 21: km = km + plus wochen = wochen + 1print("Nach", wochen, "Wochen läufst du", km, "km.")
Für Jonas (3 und 1.5):
Nach 12 Wochen läufst du 21.0 km.
Erwartungshorizont zu Aufgabe b)
3 und 1.5: 3 + 12 · 1,5 = 21, also 12 Wochen — richtig. 25 und 2: 25 < 21 ist sofort falsch, der Rumpf läuft 0-mal, Ausgabe „Nach 0 Wochen läufst du 25.0 km.“ Auch das ist sinnvoll: Wer schon 25 km schafft, braucht keine Trainingswoche mehr.
Erwartungshorizont zu Aufgabe c)
Bei Steigerung 0 bleibt km immer 3, die Bedingung km < 21 bleibt wahr — Endlosschleife, Python meldet keinen Fehler. Das Programm ist also nur für positive Steigerungen brauchbar. Absicherung direkt nach der zweiten Eingabe:
while plus <= 0: plus = float(input("Bitte eine positive Steigerung: "))
