MINT lernen

Übungen: Parameter und Rückgabewerte

Zehn interaktive Übungen zu Operationen, Parametern und Rückgabewerten — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn interaktive Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.

A1
Anatomie einer Operation
AFB I

Eine Operation berechnet einen Bruttopreis:

Java
double brutto(double netto, double satz) {
    return netto * (1 + satz);
}

double p = brutto(20.0, 0.19);

Verbinde jeden Codeteil mit seinem Fachbegriff.

A2
Stimmt's? — Aufruf und Rückgabe
AFB I

Fünf Aussagen über Operationen.

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

Übergabe nach Reihenfolge, return beendet sofort, void liefert nichts.
A3
Köpfe sortieren
AFB I

Ordne jeden Methodenkopf ein: Liefert die Operation einen Wert, und bekommt sie Parameter?

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).
1liefert Wert, hat Parameter
2void, hat Parameter
3void, ohne Parameter
Der Rückgabetyp steht vor dem Namen: Alles außer void liefert einen Wert. Leere Klammern bedeuten: keine Parameter.
A4
Rechenkette: Rabatt und Versand
AFB II

Ein Onlineshop nutzt zwei Operationen:

Pseudocode
Operation rabatt(preis, prozent)
  zurück preis − preis · prozent / 100

Operation versand(summe)
  wenn summe ≥ 50 dann
    zurück 0
  sonst
    zurück 5
  ende wenn

Berechne die Werte der Reihe nach: a ← rabatt(80, 25), b ← versand(a), c ← rabatt(40, 10) + versand(rabatt(40, 10)).

Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. a €
  2. b €
  3. rabatt(40, 10) €
  4. c €
80 − 80 · 25 / 100 = 60; 60 ≥ 50, also kein Versand. Beim dritten Aufruf wird zuerst rabatt(40, 10) = 36 berechnet; dieser Wert ist das Argument für versand, und 36 < 50 kostet 5 €: 36 + 5 = 41.
A5
Was geschieht beim Aufruf?
AFB II

Gegeben ist:

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

int x = runden(7.6) + 1;

Bringe die Vorgänge bei der Ausführung der letzten Zeile in die richtige Reihenfolge.

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.
A6
Fehlersuche: Operationen in Java
AFB II

Drei Zeilen führen zu einem Übersetzungsfehler.

Klicke genau die fehlerhaften Zeilen an — die richtigen musst du stehen lassen.
Toter Code nach return, ein Rückgabewert in einer void-Operation und eine falsche Anzahl von Argumenten — Anzahl, Reihenfolge und Typ müssen zum Kopf passen.
A7
Trickaufgabe: Preis pro Kilo
AFB II

Äpfel kosten 6 € für eine Packung von 1,5 kg. Ein Programm nutzt diese Operation:

Pseudocode
Operation preisProKilo(gewicht, preis)
  zurück preis / gewicht

Aufgerufen wird p ← preisProKilo(6, 1.5). Welchen Wert hat p?

Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Die Falle: Die Argumente werden nach Reihenfolge übergeben, nicht nach Bedeutung. gewicht bekommt 6, preis bekommt 1.5 — also 1.5 / 6 = 0.25 statt der gemeinten 4 €/kg. Richtig wäre der Aufruf preisProKilo(1.5, 6).
A8
Welche Aufrufe sind in Ordnung?
AFB III

Gegeben sind zwei Java-Operationen:

Java
int flaeche(int l, int b) {
    return l * b;
}

void melde(int f) {
    System.out.println("Fläche: " + f);
}

Welche Anweisungen werden fehlerfrei übersetzt?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
melde ist void und liefert nichts zum Speichern. flaeche braucht zwei int-Argumente: Eines fehlt bzw. 2.5 passt nicht in int. Der int-Rückgabewert darf dagegen in einem double landen (9.0), und die Ausgabe zeigt 6 + 1 = 7.
A9
Mix: Datentypen im Methodenkopf
AFB III

Ein Busfahrplan-Programm prüft, ob die Zeit bis zur Abfahrt reicht. Im Code fehlen fünf Teile:

Java
① gesamtminuten(int h, int m) {
    ② h * 60 + m;
}

③ reichtZeit(int h, int m, int bedarf) {
    return gesamtminuten(h, m) ④ bedarf;
}

boolean ok = reichtZeit(1, 20, 90);   // ok ist ⑤

Ergänze die Lücken — ein Baustein 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.

Lücke ① (Rückgabetyp): · Lücke ②: · Lücke ③ (Rückgabetyp): · Lücke ④ (Vergleich „mindestens“): · Wert ⑤:

void bleibt übrig — beide Operationen liefern einen Wert. gesamtminuten(1, 20) = 80, und 80 ≥ 90 ist falsch, also ok = false. Der Rückgabetyp von reichtZeit ist boolean, weil ein Vergleich wahr oder falsch ist.
A10
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

Welcher Wert wird ausgegeben?

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.