MINT üben

Parameter und Rückgabewerte

Dreißig Übungen zu Operationen, Parametern und Rückgabewerten — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Pegelstände übergeben
AFB I

Ein Hochwasser-Programm berechnet aus drei Messungen den mittleren Pegelstand:

Java
double mittel(double a,
              double b,
              double c) {
    return (a + b + c) / 3;
}

double pegel =
    mittel(2.0, 4.5, 7.0);

Nenne alle Werte, die beim Aufruf in die Parameter kopiert werden — markiere die passenden Felder im Raster.

Klicke die passenden Felder an — ein zweiter Klick nimmt die Markierung zurück. Mit der Tastatur: Tab ins Raster, Pfeiltasten wandern, Enter markiert. Vollständige Reihen aus richtigen Feldern ergeben ein Bingo.

Markiere alle Argumente des Aufrufs.

Beim Aufruf mittel(2.0, 4.5, 7.0) werden genau die drei Argumente 2.0, 4.5 und 7.0 der Reihe nach in a, b und c kopiert. Die Namen a, b, c sind die Parameter selbst, pegel nimmt erst den Rückgabewert auf.
Unterscheide zwischen dem Kopf der Operation (dort stehen die Parameter) und der letzten Zeile (dort steht der Aufruf).
Die Werte in den Klammern des Aufrufs sind die Argumente. Die drei Felder bilden im Raster eine vollständige Spalte.
A2
Aufrufe in der Schleife
AFB III

Ein Spiel verändert einen Punktestand in Stufen:

Pseudocode
Operation stufe(x)
  wenn x < 20 dann
    zurück x · 2
  sonst
    zurück x − 5
  ende wenn

z ← 3
für i von 1 bis 6 wiederhole
  z ← stufe(z)
ende für
Ausgabe: z

Zeige durch schrittweises Einsetzen, welcher Wert ausgegeben wird, und stelle ihn am Regler ein.

Schiebe den Regler auf deine Antwort — Pfeiltasten bewegen ihn feiner. Nach dem Prüfen siehst du den Trefferbereich.
060
Jeder Rückgabewert ist das Argument des nächsten Aufrufs: 3 → 6 → 12 → 24 → 19 → 38 → 33. Ab 20 wird abgezogen, fällt z unter 20, wird wieder verdoppelt.
Gehe die Schleife Durchlauf für Durchlauf durch und schreibe den Wert von z nach jedem Aufruf auf.
Jeder Rückgabewert wird zum Argument des nächsten Aufrufs: Ab 20 zieht stufe 5 ab, darunter wird verdoppelt.
A3
Was geschieht beim Aufruf?
AFB II

Gegeben ist:

Java
int runden(double z) {
    return (int) (z + 0.5);
}

int x = runden(7.6) + 1;

Erkläre die Ausführung der letzten Zeile, indem du die Vorgänge in die richtige Reihenfolge bringst.

Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1Die Addition 8 + 1 = 9 wird ausgeführt.
2Das Argument 7.6 wird in den Parameter z kopiert.
3Der Wert 9 wird in x gespeichert.
4Java wertet die rechte Seite aus und trifft auf den Aufruf runden(7.6).
5return beendet die Operation; der Aufruf wird durch 8 ersetzt.
6Der Rumpf berechnet (int) (7.6 + 0.5) = (int) 8.1 = 8.
Erst muss der Aufruf komplett abgearbeitet sein — Argument kopieren, Rumpf ausführen, Wert zurückgeben —, dann wird weitergerechnet und zuletzt gespeichert.
Überlege, was zuerst passieren muss: Der Aufruf muss komplett abgearbeitet sein, bevor außen weitergerechnet wird.
Innerhalb des Aufrufs gilt: Argument kopieren, Rumpf ausführen, Wert zurückgeben. Danach folgen die Addition und das Speichern.