MINT lernen

Übungen: Implementieren auf Papier

Code lesen, Fehler einordnen, Übersetzungen prüfen — zehn Aufgaben zum Implementieren ohne Rechner.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn Aufgaben von den Bewertungskriterien (AFB I) bis zur Einschätzung unvollständiger Lösungen (AFB III). Der Code ist in Python notiert; Java-Bezüge sind gekennzeichnet.

A1
Was die Korrektur erwartet
AFB I

Gib alle Punkte an, die bei einer Implementierungsaufgabe bewertet werden.

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Wer statt zurückzugeben nur ausgibt, verfehlt die Signatur.
Frage: Was steht in der Aufgabenstellung genau vorgegeben?Warum? Signatur und Operationen sind verbindlich.
Hilfe: Laufzeitfehler müssen laut Vorgaben ausdrücklich ausgeschlossen werden.
A2
Stimmt's? — Python auf Papier
AFB I

Fünf Aussagen zu Python-Code. Ordne sie als richtig oder falsch ein.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Achtung: In Python ist / immer eine Fließkommadivision; das ganzzahlige / der Struktogramme entspricht //.
Frage: Welche Zahlen durchläuft range(5)?Warum? Start 0, Ende exklusiv.
Hilfe: / im Struktogramm ist // in Python.
A3
Schreibtischtest
AFB I

Beschreibe den Schreibtischtest, indem du die Lücken füllst — ein Wort bleibt übrig.

Wort anklicken, dann Lücke anklicken (oder umgekehrt) — mit Tab und Enter geht es genauso. Ein Klick auf eine gefüllte Lücke legt das Wort zurück.

Man wählt eine kleine , verfolgt die Zeile für Zeile und vergleicht die mit dem Ergebnis. Danach prüft man einen , etwa eine leere Reihung.

Auf Papier gibt es keinen Compiler — der Schreibtischtest ersetzt ihn.
Frage: Womit prüft man Code ohne Rechner?Warum? Man spielt ihn von Hand durch.
Hilfe: Kleine Eingabe, dann Sonderfall.
A4
Fehlerart erkennen
AFB I

Ordne jeden Fehler der passenden Fehlerart zu.

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1Syntaxfehler
2Laufzeitfehler
3logischer Fehler
Logische Fehler sind am gefährlichsten: Das Programm läuft, liefert aber falsche Ergebnisse.
Frage: Läuft das Programm überhaupt an?Warum? Syntaxfehler verhindern den Start.
Hilfe: Laufzeitfehler brechen ab, logische Fehler liefern Falsches.
A5
Was gibt die Funktion zurück?
AFB I
def f(r):
    z = 0
    for i in range(1, len(r)):
        if r[i] == r[i - 1]:
            z = z + 1
    return z

Bestimme den Rückgabewert für f([4, 4, 4, 7, 7, 2]).

Überlege selbst und trage das Ergebnis ein — Enter prüft direkt.
Gleiche Nachbarn: (4,4), (4,4), (7,7) — drei Paare.
Frage: Welche Paare werden verglichen?Warum? Immer ein Element mit seinem Vorgänger.
Hilfe: Positionen 1–0, 2–1, 3–2, 4–3, 5–4.
A6
Eine Implementierung planen
AFB II

Stelle ein sinnvolles Vorgehen für eine Implementierungsaufgabe in der richtigen Reihenfolge dar.

Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1Signatur aus der Aufgabe übernehmen
2Rückgabevariable initialisieren
3Schleife über die Datenstruktur schreiben
4Bedingung und Anweisungen im Schleifenrumpf ergänzen
5Rückgabe notieren und mit Randfall testen
Mit Signatur und Rückgabe steht das Gerüst — Teilpunkte gibt es oft schon dafür.
Frage: Was lässt sich sofort aus der Aufgabe übernehmen?Warum? Die Signatur.
Hilfe: Gerüst zuerst, dann Details.
A7
Stapel abarbeiten
AFB II
def g(s):
    n = 0
    h = Stack()
    while not s.isEmpty():
        x = s.pop()
        if x > 0:
            n = n + x
        h.push(x)
    while not h.isEmpty():
        s.push(h.pop())
    return n

Der Stapel s enthält von unten nach oben 3, −2, 5, 0, 4. Ermittle die Werte.

Arbeite die Kette Schritt für Schritt ab: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. erstes Element, das pop() liefert:
  2. Rückgabewert von g(s):
  3. oberstes Element von s nach dem Aufruf:
4 + 5 + 3 = 12 (0 und −2 zählen nicht). Durch den Hilfsstapel steht s danach wieder wie vorher, oben 4.
Frage: Welches Element liegt oben?Warum? Das zuletzt genannte.
Hilfe: Die zweite Schleife stellt den Stapel wieder her.
A8
Struktogramm und Java
AFB II

Erläutere die Übersetzung, indem du jede Struktogramm-Zeile mit der passenden Java-Zeile verbindest.

Frage: Wie wird aus „bis Länge − 1“ eine Java-Bedingung?Warum? < Länge statt ≤ Länge − 1.
Hilfe: mod ist in Java %.
A9
Saras Implementierung
AFB II

Sara soll enthaelt(d: DynArray, w: Ganzzahl): Wahrheitswert implementieren. Überprüfe ihren Code zeilenweise.

In diesem Text stecken Fehler. Klicke genau die falschen Zeilen an — die richtigen musst du stehen lassen.
Richtig: Schleife über alle Indizes, bei Treffer sofort True, nach der Schleife False.
Frage: Wann weiß man sicher, dass w nicht vorkommt?Warum? Erst wenn alle Elemente geprüft sind.
Hilfe: Prüfe die Startzahl von range.
A10
Wie viele Punkte?
AFB III

Beurteile die Implementierungen zu maximum(r) (nicht leere Reihung): Wie viel der Lösung ist erreicht?

Wähle für jede Zeile eine Stufe: 1 = nichts, 2 = kaum etwas, 3 = etwa die Hälfte, 4 = fast alles, 5 = vollständig. Mit der Tastatur: Tab zur Zeile, ←/→ zwischen den Stufen, Enter setzt.
1 = nichts5 = vollständig
korrekt mit Startwert r[0], Schleife, Vergleich und Rückgabe
korrekt, aber Startwert 0 statt r[0]
Schleife und Vergleich stimmen, Rückgabe fehlt
nur die Signatur ist hingeschrieben
return max(r) mit eingebauter Funktion
Eingebaute Komfortfunktionen umgehen das Verfahren, das geprüft werden soll. Der Startwert 0 ist ein typischer logischer Fehler bei negativen Zahlen.
Frage: Was soll die Aufgabe eigentlich prüfen?Warum? Das Verfahren, nicht die Bibliothek.
Hilfe: Fehlende Rückgabe = Signatur nicht erfüllt.