Rückblick
Sieben Lektionen – und damit hast du alles beisammen, was zum Programmieren nötig ist. Jedes Programm der Welt besteht aus Sequenz, Verzweigung und Wiederholung. Alles Weitere im Lernpfad dient nur noch der Ordnung, nicht dem Können.
Das kann ich jetzt
- Ich kann Verzweigungen mit
if,else ifundelseschreiben. (3.1) - Ich kann logische Ausdrücke mit
&&,||und!bilden und ihren Wahrheitswert bestimmen. (3.2) - Ich kann eine kopfgesteuerte Schleife schreiben und erkenne eine drohende Endlosschleife. (3.3)
- Ich kann eine Zählschleife schreiben und weiß, wann ich sie einer
while-Schleife vorziehe. (3.4) - Ich kann begründen, wann eine fußgesteuerte Schleife die richtige Wahl ist. (3.5)
- Ich kann verschachtelte Schleifen lesen und schreiben. (3.6)
- Ich kann einen Algorithmus als Struktogramm darstellen. (3.7)
Gemischte Aufgaben
Aufgabe 1: Ablauf verfolgen
Führ auf Papier eine Tabelle mit den Spalten i und summe. Trag für jeden Durchlauf ein, was ausgegeben wird.
void main() {
int summe = 0;
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) {
summe += i;
} else {
summe -= 1;
}
IO.println(i + ": " + summe);
}
}
a) Welche fünf Zeilen erscheinen?
b) Wie oft wird der else-Zweig ausgeführt?
c) Ändere die Bedingung in i % 2 == 1. Was gibt das Programm dann aus? Sag es voraus, bevor du es ausprobierst.
d) Was ändert sich, wenn i <= 5 durch i < 5 ersetzt wird?
Aufgabe 2: Vier Schleifen mit Fehlern
Alle vier Schleifen sollen die Zahlen 1 bis 5 ausgeben. Untersuche sie auf Papier: Was passiert tatsächlich? Beschreibe die Wirkung und berichtige.
// a)
int i = 1;
while (i <= 5) {
IO.println(i);
}
// b)
for (int i = 1; i <= 5; i++);
{
IO.println(i);
}
// c)
int i = 1;
while (i < 5) {
IO.println(i);
i++;
}
// d)
int i = 5;
while (i > 0) {
IO.println(i);
i--;
}
Bei zwei der vier meldet die IDE gar nichts – sie laufen einfach falsch. Welche sind das?
Tipp zu b)
Sieh dir das Zeichen unmittelbar hinter der schließenden Klammer der for-Zeile an. Was ist der Rumpf der Schleife, wenn dort schon ein Semikolon steht?
Aufgabe 3: Muster und Tabellen
a) Zeichne zuerst das Struktogramm für ein Programm, das eine Treppe aus Sternen ausgibt:
*
**
***
****
b) Schreib das Programm dazu.
c) Erweitere es zu einer kleinen Einmaleinstabelle: drei Zeilen, vier Spalten, in jedem Feld das Produkt aus Zeilen- und Spaltennummer.
d) Erkläre in einem Satz, wozu die äußere und wozu die innere Schleife da ist.
Tipp 1: Zwei Schleifen
Die äußere Schleife zählt die Zeilen, die innere die Zeichen innerhalb einer Zeile. Die Zahl der Durchläufe der inneren Schleife hängt bei a) vom Zähler der äußeren ab.
Tipp 2: Ausgabe ohne Zeilenumbruch
IO.println macht immer einen Umbruch. Bau die Zeile deshalb zuerst in einer Zeichenkette zusammen und gib sie erst danach aus:
String zeile = "";
zeile = zeile + "*";
IO.println(zeile);