Die Buskosten der Klassenfahrt
AFB I–IIDie Klassenkasse will die Buskosten gerecht aufteilen:
gesamt = float(input("Buskosten in Euro? "))personen = int(input("Mitfahrende? "))pro_kopf = gesamt / personenprint("Pro Person:", pro_kopf, "Euro")
- Berechne die Ausgabe, wenn der Bus 1380 Euro kostet und 24 Personen mitfahren.
- Erkläre, warum das Programm mit einem TypeError abbricht, wenn man in den Zeilen 1 und 2
float(…)bzw.int(…)weglässt. - Untersuche die Ausgabe für 1000 Euro und 3 Personen. Zeige, wie man mit
//und%stattdessen „333 Euro und 33 Cent“ erhält.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Buskosten in Euro? 1380 Mitfahrende? 24 Pro Person: 57.5 Euro
1380.0 / 24 = 57.5 — das Ergebnis ist ein float.
Erwartungshorizont zu Aufgabe b)
input liefert immer Text (str). Dann steht in Zeile 3 "1380" / "24" — Texte kann man nicht teilen, Python meldet einen TypeError. Erst float(…) und int(…) wandeln die Eingaben in Zahlen um, mit denen / rechnen kann.
Erwartungshorizont zu Aufgabe c)
Buskosten in Euro? 1000 Mitfahrende? 3 Pro Person: 333.3333333333333 Euro
So viele Nachkommastellen sind bei Geld unbrauchbar. Lösung: in ganze Cent umrechnen, ganzzahlig teilen und dann wieder zerlegen:
gesamt = float(input("Buskosten in Euro? "))personen = int(input("Mitfahrende? "))cent = int(gesamt * 100) // personenprint("Pro Person:", cent // 100, "Euro und", cent % 100, "Cent")
Buskosten in Euro? 1000 Mitfahrende? 3 Pro Person: 333 Euro und 33 Cent
int(gesamt * 100) macht aus 1000.0 Euro die ganze Zahl 100000 Cent (int schneidet bei einer Kommazahl die Nachkommastellen ab). 100000 // 3 = 33333 Cent; davon sind 33333 // 100 = 333 Euro und 33333 % 100 = 33 Cent (1 Cent bleibt als Rest übrig).
Bildschirmzeit auswerten
AFB II–IIIDas Handy zeigt die Bildschirmzeit einer Woche nur in Minuten an, z. B. 1000 Minuten. Das ist schwer vorstellbar.
- Implementiere ein Programm, das die Minuten einer Woche einliest, sie in Stunden und Minuten umrechnet und zusätzlich den Durchschnitt pro Tag ausgibt.
- Überprüfe dein Programm mit den Eingaben 1000 und 420. Gib die Ausgaben an und kontrolliere sie mit einer Überschlagsrechnung.
- Interpretiere die Ausgabe „Pro Tag: 142.85714285714286 Minuten“ und vergleiche sie mit dem Ergebnis von
minuten // 7.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Mögliche Lösung:
# Bildschirmzeit einer Woche umrechnenminuten = int(input("Bildschirmzeit der Woche in Minuten? "))stunden = minuten // 60rest = minuten % 60print(stunden, "Stunden und", rest, "Minuten")print("Pro Tag:", minuten / 7, "Minuten")
Erwartungshorizont zu Aufgabe b)
Bildschirmzeit der Woche in Minuten? 1000 16 Stunden und 40 Minuten Pro Tag: 142.85714285714286 Minuten
Bildschirmzeit der Woche in Minuten? 420 7 Stunden und 0 Minuten Pro Tag: 60.0 Minuten
Kontrolle: 16 · 60 + 40 = 1000 ✓ und 7 · 60 + 0 = 420 ✓. 1000 : 7 ist etwas mehr als 140, 420 : 7 = 60 ✓.
Erwartungshorizont zu Aufgabe c)
Im Durchschnitt wurde das Handy täglich knapp 143 Minuten genutzt, also fast 2 Stunden und 23 Minuten. Die vielen Nachkommastellen sind rechnerisch richtig, im Alltag aber sinnlos genau. 1000 // 7 liefert 142 und lässt den Rest (6 Minuten) weg — gut lesbar, aber leicht zu niedrig. Für eine Übersicht reicht die ganze Zahl, für eine genaue Rechnung braucht man /.
