Aufgabenblock — AFB II
Zehn Sachaufgaben aus Alltag und Schule: Fahrplan, Kasse, Passwortprüfung, Notenverwaltung, Wetterstation. Jede Aufgabe verbindet mehrere Themen des Kapitels — etwa Schleife und mod, Operation und globale Variable, Zeichenkette und ASCII. Übersetze zuerst die Situation, simuliere dann Schritt für Schritt (am besten mit Tracetabelle) und trage beide Ergebnisse ein. Wenn es hakt, helfen dir die drei gestuften Tipps.
Eine Fahrplan-App speichert Uhrzeiten als Minuten seit Mitternacht (0 bis 1439). Der Nachtbus fährt um 23:38 Uhr ab und ist 107 Minuten unterwegs. Die App rechnet:
start ← 23 · 60 + 38 t ← (start + 107) mod 1440 h ← t / 60 m ← t mod 60 Ausgabe: h, ":", m
a) Welche Stunde h zeigt die App als Ankunftszeit an? b) Welche Minute m?
Vollständige Lösung
start = 23 · 60 + 38 = 1418 Minuten. Mit Fahrzeit: 1418 + 107 = 1525. Ein Tag hat 24 · 60 = 1440 Minuten, also t = 1525 mod 1440 = 85 (der Bus kommt nach Mitternacht an). h = 85 / 60 = 1, m = 85 mod 60 = 25.
Antwort: Der Bus kommt um 1:25 Uhr an. Hinweis: Ohne mod 1440 käme h = 25 heraus — eine Uhrzeit, die es nicht gibt.
Ein Kassenautomat in der Mensa soll 4,68 € Rückgeld mit möglichst wenigen Münzen auszahlen. Er rechnet in Cent und geht die Münzwerte vom größten zum kleinsten durch:
rest ← 468 muenzen ← 0 für jeden wert in [200, 100, 50, 20, 10, 5, 2, 1] wiederhole anzahl ← rest / wert muenzen ← muenzen + anzahl rest ← rest mod wert ende für Ausgabe: muenzen
a) Wie viele Münzen gibt der Automat insgesamt aus? b) Welchen Wert hat rest direkt nach dem Durchlauf mit dem Münzwert 50?
Vollständige Lösung
| wert | anzahl | rest |
|---|---|---|
| 200 | 2 | 68 |
| 100 | 0 | 68 |
| 50 | 1 | 18 |
| 20 | 0 | 18 |
| 10 | 1 | 8 |
| 5 | 1 | 3 |
| 2 | 1 | 1 |
| 1 | 1 | 0 |
Summe der Spalte anzahl: 2 + 0 + 1 + 0 + 1 + 1 + 1 + 1 = 7 Münzen (2 × 2 €, 50 ct, 10 ct, 5 ct, 2 ct, 1 ct). Nach dem 50-ct-Durchlauf ist rest = 18.
Hinweis: Wer in Euro mit Kommazahlen rechnet, bekommt Rundungsfehler — deshalb rechnen Kassen intern in ganzen Cent.
Ein Anmeldeformular bewertet Passwörter mit der folgenden Operation. ascii(z) liefert den ASCII-Wert eines Zeichens.
Operation staerke(pw) z ← 0 g ← 0 für i von 0 bis länge(pw) − 1 wiederhole a ← ascii(pw[i]) wenn a ≥ 48 und a ≤ 57 dann z ← z + 1 ende wenn wenn a ≥ 65 und a ≤ 90 dann g ← g + 1 ende wenn ende für zurück länge(pw) + 2 · z + 3 · g
Ein Nutzer gibt das Passwort "Kiwi7Saft2023" ein. a) Welchen Wert hat z am Ende der Schleife? b) Welchen Wert liefert staerke zurück?
Vollständige Lösung
Das Passwort hat 13 Zeichen (Positionen 0 bis 12). Ziffern (ASCII 48–57): 7, 2, 0, 2, 3 → z = 5. Großbuchstaben (ASCII 65–90): K, S → g = 2. Kleinbuchstaben (97–122) zählen in keiner der beiden Bedingungen.
Rückgabe: 13 + 2 · 5 + 3 · 2 = 13 + 10 + 6 = 29.
Hinweis: Die zwei getrennten einseitigen Verzweigungen sind hier richtig — ein Zeichen kann nie gleichzeitig Ziffer und Großbuchstabe sein.
