MINT üben

Algorithmen entwerfen

Zehn Sachaufgaben von Nachtbus bis Wetterstation: Bausteine des Kapitels kombinieren und Schritt für Schritt simulieren.

Dein Fortschritt:
0 / 0 Aufgaben
2

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.

A1
Nachtbus — Uhrzeit mit mod
AFB II

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:

Pseudocode
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?

Uhr
min
Ansatz: Zuerst die Abfahrt in Minuten umrechnen, die Fahrzeit addieren und mit mod 1440 über Mitternacht springen. Danach zerlegen / und mod die Minuten in Stunden und Minuten.
Rechenweg: start = 1380 + 38 = 1418; 1418 + 107 = 1525; 1525 mod 1440 = 85. Dann 85 / 60 und 85 mod 60.
Lösung: a) h = 1 b) m = 25 — Ankunft 1:25 Uhr.
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.

A2
Wechselgeld — möglichst wenige Münzen
AFB II

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:

Pseudocode
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?

Münzen
ct
Ansatz: Führe eine Tracetabelle mit den Spalten wert, anzahl und rest. In jedem Durchlauf: wie oft passt der Münzwert in den Rest (/), was bleibt übrig (mod)?
Rechenweg: 468 / 200 = 2, Rest 68 → 68 / 100 = 0 → 68 / 50 = 1, Rest 18 → 18 / 20 = 0 → 18 / 10 = 1, Rest 8 → 5: 1, Rest 3 → 2: 1, Rest 1 → 1: 1, Rest 0.
Lösung: a) 7 Münzen b) rest = 18 ct
Vollständige Lösung
wertanzahlrest
200268
100068
50118
20018
1018
513
211
110

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.

A3
Passwortprüfung per ASCII
AFB II

Ein Anmeldeformular bewertet Passwörter mit der folgenden Operation. ascii(z) liefert den ASCII-Wert eines Zeichens.

Pseudocode
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?

Punkte
Ansatz: Übersetze die ASCII-Bereiche: 48–57 sind die Ziffern, 65–90 die Großbuchstaben. z zählt Ziffern, g zählt Großbuchstaben.
Rechenweg: Kiwi7Saft2023: Ziffern 7, 2, 0, 2, 3; Großbuchstaben K und S; Länge 13 Zeichen. Rückgabe: 13 + 2 · 5 + 3 · 2.
Lösung: a) z = 5 b) Rückgabe = 29
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.