Der Getränkeautomat
AFB I–IIEin Getränkeautomat nimmt nacheinander Münzen an, bis der Preis eines Getränks von 1,80 € erreicht oder überschritten ist. Anschließend gibt er das Getränk aus und — falls zu viel eingeworfen wurde — das Wechselgeld. Die folgende Beschreibung stammt aus der Bedienungsanleitung:
„Werfen Sie Münzen ein. Der Automat addiert die Beträge. Ist der Preis erreicht, erhalten Sie Ihr Getränk und gegebenenfalls Wechselgeld.“
- Beschreiben Sie, welche Eingaben der Automat verarbeitet und welche Ausgaben er erzeugt.
- Stellen Sie den Ablauf als Algorithmus in Pseudocode dar. Verwenden Sie dabei eine Wiederholung und eine Verzweigung.
- Begründen Sie, dass Ihr Algorithmus terminiert, sofern nur Münzen mit positivem Wert eingeworfen werden.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Eingaben: die Werte der eingeworfenen Münzen (nacheinander), ggf. die Getränkewahl. Ausgaben: das Getränk und — wenn der eingeworfene Betrag größer als 1,80 € ist — Wechselgeld in Höhe der Differenz.
Erwartungshorizont zu Aufgabe b)
betrag ← 0 solange betrag < 1,80 wiederhole Eingabe: muenze betrag ← betrag + muenze ende solange Ausgabe: Getränk wenn betrag > 1,80 dann Ausgabe: Wechselgeld betrag − 1,80 ende wenn
Initialisierung vor der Schleife, Summieren im Rumpf, einseitige Verzweigung nach der Schleife.
Erwartungshorizont zu Aufgabe c)
Jede Münze hat einen Wert von mindestens 0,01 €. Bei jedem Durchlauf wächst betrag also um mindestens 0,01 €. Nach höchstens 180 Durchläufen ist betrag ≥ 1,80, die Bedingung der Schleife ist falsch und der Algorithmus endet. Die Anweisungen danach werden je genau einmal ausgeführt.
Die Warteschlange im Freizeitpark
AFB II–IIIEin Freizeitpark lässt Besucher in Gruppen in eine Achterbahn. Ein Wagen fasst 6 Personen. Ein Mitarbeiter arbeitet nach folgendem Algorithmus, bis die Schlange leer ist:
wartende ← Eingabe fahrten ← 0 solange wartende > 0 wiederhole wenn wartende ≥ 6 dann wartende ← wartende − 6 sonst wartende ← 0 ende wenn fahrten ← fahrten + 1 ende solange Ausgabe: fahrten
- Analysieren Sie, was der Algorithmus berechnet, und geben Sie die Ausgabe für 20 wartende Personen an.
- Erweitern Sie den Algorithmus so, dass zusätzlich die Anzahl leerer Plätze in allen Fahrten zusammen ausgegeben wird.
- Beurteilen Sie, ob der Algorithmus auch für die Eingabe 0 und für eine negative Eingabe sinnvoll arbeitet.
Hinweise
Hinweis zu Aufgabe a)
wartende Durchlauf für Durchlauf?Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Der Algorithmus berechnet, wie viele Fahrten nötig sind, bis alle Wartenden gefahren sind (Division durch 6, aufgerundet). Für 20: wartende 20 → 14 → 8 → 2 → 0, also 4 Fahrten.
Erwartungshorizont zu Aufgabe b)
Vor der Schleife leer ← 0. Im sonst-Zweig vor wartende ← 0: leer ← leer + (6 − wartende). Nach der Schleife zusätzlich Ausgabe: leer. Für 20 Personen ergibt sich 6 − 2 = 4 leere Plätze.
Erwartungshorizont zu Aufgabe c)
Eingabe 0: Die Bedingung ist sofort falsch, ausgegeben wird 0 Fahrten — sinnvoll. Negative Eingabe: Ebenfalls 0 Fahrten, der Algorithmus terminiert also. Eine negative Anzahl von Personen ist aber fachlich unsinnig; sinnvoll wäre eine Prüfung der Eingabe mit einer Fehlermeldung. Urteil: korrekt für alle zulässigen Eingaben (ganze Zahlen ≥ 0), die Behandlung unzulässiger Eingaben fehlt.
