MINT üben

Reihungen durchlaufen

Dreißig Übungen zum Durchlaufen von Reihungen — vom Schleifenkopf bis zum Maximum, das es gar nicht gibt.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen zu Zählschleife, for-each, Summe, Maximum und Zählen — von AFB I bis AFB III. Jede Übung gibt sofort Rückmeldung; wenn Sie nicht weiterkommen, helfen die gestuften Tipps.

A1
Schleifenkopf und Indexfolge
AFB I

Ein Schrittzähler speichert die Werte von acht Tagen: int[] schritte = new int[8]; Ordnen Sie jedem Schleifenkopf die Indizes zu, die i im Rumpf nacheinander annimmt.

Ansatz: Lesen Sie Startwert, Bedingung und Schrittweite getrennt ab.
Weiter: Die Länge ist 8, der letzte gültige Index also 7.
A2
Spendenlauf
AFB I

Beim Spendenlauf erlaufen fünf Klassen diese Beträge (in €): int[] spende = {12, 5, 20, 8, 14};

int s = 0;
for (int x : spende) {
    if (x > 10) {
        s = s + x;
    }
}

Berechnen Sie den Wert von s nach der Schleife.

Tragen Sie das Ergebnis ein — Enter prüft direkt.
Addiert werden nur Beträge über 10: \(12+20+14=46\). Die 5 und die 8 werden übersprungen. Die for-each-Schleife reicht hier, weil nur gelesen wird.
Ansatz: Gehen Sie die fünf Werte einzeln durch und prüfen Sie jeweils die Bedingung.
Weiter: Drei Werte sind größer als 10.
A3
Die schnellste Läuferin
AFB II

Bei einem 100-m-Lauf werden fünf Zeiten in Sekunden gespeichert: double[] zeit = {12.4, 11.9, 12.7, 11.9, 12.1};

int pos = 0;
for (int i = 1; i < zeit.length; i++) {
  if (zeit[i] < zeit[pos]) {
    pos = i;
  }
}

Erklären Sie das Programm, indem Sie den Lückentext mit den passenden Begriffen füllen. Zwei Begriffe bleiben ü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.

pos speichert nicht die Zeit selbst, sondern deren . Am Anfang gilt das Element mit dem Index als das beste, deshalb beginnt die Schleife bei . Ist die Bedingung wahr, wird ausgeführt. Bei den beiden gleichen Bestzeiten 11,9 s bleibt am Ende die stehen, weil < nur echt kleinere Zeiten erkennt. Die beste Zeit selbst liefert .

pos merkt sich die Position. Weil zeit[0] schon der Startwert ist, beginnt die Schleife bei 1. Bei zeit[3] = 11,9 ist 11,9 < 11,9 falsch, deshalb bleibt pos = 1 (erste Bestzeit) stehen. Die Zeit liefert zeit[pos] = 11,9 s.
Überlegen Sie, was in pos steht: eine Zeit in Sekunden oder eine Platznummer der Reihung?
Die Bedingung zeit[i] < zeit[pos] ist bei gleichen Zeiten falsch. Dann wird pos nicht verändert, und der frühere Index bleibt erhalten.