MINT lernen

Schleifen und Arrays

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont — ein Countdown und eine nummerierte Einkaufsliste.

Dein Fortschritt:
0 / 0 Aufgaben
1

Countdown

AFB I–II

Für den Start eines Wettrennens schreibt Ali:

let zeit = 10;
while (zeit > 0) {
  console.log(zeit);
  zeit = zeit - 3;
}
console.log("Start!");
  1. Gib alle Ausgaben in der richtigen Reihenfolge an.
  2. Erstelle eine Tabelle mit dem Wert von zeit und dem Ergebnis der Bedingung vor jeder Runde.
  3. Erläutere, wie Ali das Programm ändern muss, damit 10, 9, 8, … bis 1 heruntergezählt wird.

Hinweise

Hinweis zu Aufgabe a)
Pro Runde wird 3 abgezogen.
Hinweis zu Aufgabe b)
Die Bedingung wird auch ein letztes Mal geprüft — dann ist sie false.
Hinweis zu Aufgabe c)
Welche Zeile legt die Schrittweite fest?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

10, 7, 4, 1, Start!

Erwartungshorizont zu Aufgabe b)

zeit = 10: 10 > 0 true · 7: true · 4: true · 1: true · −2: false → Schleife endet.

Erwartungshorizont zu Aufgabe c)

Die Zeile zeit = zeit - 3; muss zu zeit = zeit - 1; werden. Die Bedingung zeit > 0 bleibt, weil 1 der letzte Wert ist, der noch ausgegeben werden soll; bei 0 endet die Schleife.

2

Die Einkaufsliste

AFB II–III

Nora speichert ihre Einkaufsliste in einem Array. Die Ausgabe soll nummeriert sein: 1. Milch, 2. Brot, …

let liste = ["Milch", "Brot", "Eier"];
liste.push("Äpfel");
for (let i = 0; i <= liste.length; i++) {
  console.log(i + ". " + liste[i]);
}
  1. Ermittle die Länge des Arrays nach Zeile 2 und alle Ausgaben des Programms.
  2. Erkläre die beiden Abweichungen von Noras Wunsch.
  3. Entwickle eine korrigierte Schleife und erweitere das Programm so, dass danach „4 Dinge einkaufen“ mit der richtigen Anzahl ausgegeben wird.

Hinweise

Hinweis zu Aufgabe a)
push hängt hinten an.
Hinweis zu Aufgabe b)
Vergleiche Nummer und Index; zähle die Runden.
Hinweis zu Aufgabe c)
Die Anzahl liefert liste.length.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Länge 4. Ausgaben: 0. Milch, 1. Brot, 2. Eier, 3. Äpfel, 4. undefined.

Erwartungshorizont zu Aufgabe b)

1) Die Nummer beginnt bei 0, weil der Index ausgegeben wird — gewünscht ist Index + 1. 2) Wegen <= läuft die Schleife fünfmal; liste[4] gibt es nicht und liefert undefined.

Erwartungshorizont zu Aufgabe c)

for (let i = 0; i < liste.length; i++) { console.log((i + 1) + ". " + liste[i]); } und danach console.log(liste.length + " Dinge einkaufen");. Weil i + 1 links steht, wird zuerst gerechnet und erst dann verkettet; die Klammer macht das deutlich.