MINT lernen

Rechnen und Typumwandlung

Zwei Sachaufgaben zu Rechenoperatoren und Typumwandlung mit Hinweisen und Erwartungshorizont.

Dein Fortschritt:
0 / 0 Aufgaben
1

Die Buskosten der Klassenfahrt

AFB I–II

Die 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")
  1. Berechne die Ausgabe, wenn der Bus 1380 Euro kostet und 24 Personen mitfahren.
  2. Erkläre, warum das Programm mit einem TypeError abbricht, wenn man in den Zeilen 1 und 2 float(…) bzw. int(…) weglässt.
  3. 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)
1380 : 24 — und denk daran, welchen Typ / liefert.
Hinweis zu Aufgabe b)
Welchen Typ liefert input immer?
Hinweis zu Aufgabe c)
Rechne zuerst alles in Cent um.

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).

2

Bildschirmzeit auswerten

AFB II–III

Das Handy zeigt die Bildschirmzeit einer Woche nur in Minuten an, z. B. 1000 Minuten. Das ist schwer vorstellbar.

  1. Implementiere ein Programm, das die Minuten einer Woche einliest, sie in Stunden und Minuten umrechnet und zusätzlich den Durchschnitt pro Tag ausgibt.
  2. Überprüfe dein Programm mit den Eingaben 1000 und 420. Gib die Ausgaben an und kontrolliere sie mit einer Überschlagsrechnung.
  3. Interpretiere die Ausgabe „Pro Tag: 142.85714285714286 Minuten“ und vergleiche sie mit dem Ergebnis von minuten // 7.

Hinweise

Hinweis zu Aufgabe a)
Ganze Stunden mit //, übrige Minuten mit %, der Tagesdurchschnitt mit /.
Hinweis zu Aufgabe b)
16 · 60 = ? und 7 · 60 = ?
Hinweis zu Aufgabe c)
Welche Genauigkeit ist bei einer Bildschirmzeit sinnvoll?

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 /.