Programmieren lernen: Grundlagen einfach erklärt
Du lernst, Computerbefehle zu planen und zu prüfen. Du verfolgst Zahlenwerte und entscheidest, welche Schritte wann wiederholt werden.
Kurz gesagt
Beim Programmieren planst und schreibst du Befehle, die ein Computer ausführt. Du legst fest, was in verschiedenen Fällen passiert und welche Schritte sich wiederholen. Mit Tests vergleichst du erwartete und tatsächliche Ergebnisse.
Ein Programm ist eine Folge von Befehlen für einen Computer. Der geschriebene Text mit diesen Befehlen heißt Code. Hier übst du mit Pseudocode, einer leicht lesbaren Beschreibung des Ablaufs. Diesen Pseudocode kannst du nicht direkt auf einem Computer ausführen.
Deine Lernziele
Vor dem Schreiben legst du fest, was dein Programm tun soll. Eine Eingabe ist etwas, das das Programm bekommt, etwa ein eingegebenes Wort. Eine Ausgabe ist ein Ergebnis, das es zeigt, etwa einen Text auf dem Bildschirm.
Beim Testen wählst du einen Fall aus. Du hältst fest, welche Ausgabe du erwartest. Dann führst du das Programm mit der passenden Eingabe aus und vergleichst die tatsächliche Ausgabe mit deiner Erwartung. Geschriebener Code kann eine falsche Anweisung enthalten. Deshalb genügt das Schreiben allein nicht.
Wenn die Ausgabe nicht zur Vorgabe passt, musst du den Fehler suchen, den Code verbessern und erneut testen. Ein Test ersetzt den Code nicht: Der Code enthält die Befehle, der Test prüft ihr Ergebnis. Bestandene Tests zeigen, dass die geprüften Fälle passen. Fehler in noch ungeprüften Fällen bleiben möglich.
Test
Ein Test prüft einen ausgewählten Fall. Dazu vergleichst du das erwartete Ergebnis mit dem tatsächlichen Ergebnis des Programms.
Beispiel: Eine Textausgabe testen (ausgedachtes Beispiel)
- 1Vorgabe: Bei der Eingabe „rot“ soll das Programm „Stopp“ ausgeben.
- 2Erwartete Ausgabe für diesen Test: „Stopp“.
- 3Tatsächliche Ausgabe beim Ausführen: „Weiter“.
- 4Die Ausgaben unterscheiden sich. Das Programm erfüllt die Vorgabe für diesen Fall noch nicht.
- 5Nach einer Verbesserung führst du den Test erneut aus.
Merke: Auch nach bestandenen Tests können noch Fehler vorhanden sein. Die Tests haben nur die ausgewählten Fälle geprüft.
Teste dich
Eine Variable ist ein benannter Speicherplatz für einen Wert. Wird ihr ein neuer Wert zugewiesen, ersetzt er den bisherigen Wert. In unserem Pseudocode legt „setze zahl auf 2“ den Wert fest. „Erhöhe zahl um 2“ speichert einen um zwei größeren Wert. „Gib zahl aus“ zeigt den aktuellen Wert, verändert ihn aber nicht.
Eine Schleife wiederholt Befehle. Eine Bedingung ist eine Aussage, die wahr oder falsch sein kann. Die Schleife mit „solange“ prüft ihre Bedingung vor jedem Durchlauf. Ein Durchlauf ist eine Ausführung der eingerückten Befehle. Ist die Bedingung wahr, werden diese Befehle von oben nach unten ausgeführt. Danach wird erneut geprüft. Ist sie falsch, endet die Schleife.
Der Doppelpunkt kündigt die eingerückten Befehle an. Die Einrückung zeigt, welche Befehle zur Schleife gehören. Achte auf ihre Reihenfolge: Steht die Ausgabe vor dem Erhöhen, erscheint der bisherige Wert. Der neue Wert wird erst danach gespeichert.
Variable
Eine Variable hat einen Namen und speichert einen aktuellen Wert. Eine Änderung ersetzt ihren bisherigen Wert.
Beispiel: Eine Zahl schrittweise erhöhen (ausgedachtes Beispiel)
- 1setze zahl auf 2
- 2solange zahl kleiner als 7:
- 3 gib zahl aus
- 4 erhöhe zahl um 2
- 5Die gespeicherten Werte sind nacheinander 2, 4, 6 und 8.
- 6Ausgegeben werden 2, 4 und 6. Bei 8 ist die Bedingung falsch; 8 wird nicht ausgegeben.
| Prüfung | Wert bei der Prüfung | Ausgabe danach |
|---|---|---|
| Erste Prüfung | 2 | 2 |
| Zweite Prüfung | 4 | 4 |
| Dritte Prüfung | 6 | 6 |
| Vierte Prüfung | 8 | Keine; die Schleife endet. |
Teste dich
Eine Verzweigung entscheidet anhand von Bedingungen, welche Befehle ausgeführt werden. Für mehrere Fälle kannst du eine Kette aus „wenn“, „sonst wenn“ und „sonst“ schreiben. Die Prüfung beginnt oben. Beim ersten Fall mit wahrer Bedingung werden die zugehörigen eingerückten Befehle ausgeführt. Die übrigen Fälle dieser Kette werden übersprungen. Auch wenn mehrere Bedingungen wahr wären, wird in dieser Kette ein einzelner Fall ausgeführt.
„Sonst wenn“ führt eine weitere Bedingung ein. Du kannst mehrere solche Fälle ergänzen. Der abschließende sonst-Teil hat keine eigene Bedingung. Er wird ausgeführt, wenn keine vorherige Bedingung wahr ist. Der Doppelpunkt und die Einrückung zeigen auch hier, welche Befehle zu einem Fall gehören.
Im Beispiel ist „hefte“ eine ganze Anzahl ab null, also 0, 1, 2 und so weiter. Unter 4 wird „kleine Mappe“ ausgegeben. Bei 4 bis 8 scheitert die erste Bedingung, aber die zweite ist wahr. Ab 9 sind beide Bedingungen falsch; dann wird „Kiste“ ausgegeben. Diese Verpackungsregeln sind für das Beispiel ausgedacht.
Verzweigung
Eine Verzweigung wählt anhand von Bedingungen aus, welche Befehle ausgeführt werden.
Beispiel: Hefte einpacken (ausgedachtes Beispiel)
- 1setze hefte auf 6
- 2wenn hefte kleiner als 4:
- 3 gib „kleine Mappe“ aus
- 4sonst wenn hefte kleiner als 9:
- 5 gib „große Mappe“ aus
- 6sonst:
- 7 gib „Kiste“ aus
- 86 ist nicht kleiner als 4, aber kleiner als 9. Die Ausgabe lautet „große Mappe“.
Merke: In einer wenn-sonst-wenn-sonst-Kette entscheidet der erste passende Fall. Der sonst-Teil fängt die Fälle auf, für die vorher keine Bedingung wahr war.
Teste dich
Die Schleife mit Prüfung davor heißt auch while-Schleife; „while“ bedeutet hier „solange“. Sie prüft vor jedem Durchlauf. Ist die Bedingung schon bei der ersten Prüfung falsch, wird der Inhalt übersprungen. Die Schleife mit Prüfung danach heißt do-while-Schleife. Unser Pseudocode verwendet dafür „wiederhole … solange“. Sie führt den Inhalt zuerst aus und prüft danach. Deshalb wird ihr Inhalt mindestens einmal ausgeführt.
Bei der hier gezeigten Zählschleife, dem for-Modell, stehen Startwert, Bedingung und Änderung zusammen. Der Startwert wird einmal gesetzt. Vor jedem Durchlauf wird die Bedingung geprüft. Nach jedem Durchlauf folgt die Änderung. In unserem Pseudocode trennen Strichpunkte die drei Teile: für (setze z auf 1; z kleiner als 4; erhöhe z um 1): gib z aus Dieses ausgedachte Beispiel gibt 1, 2 und 3 aus. Nach der Erhöhung auf 4 ist die Bedingung falsch.
Eine fehlerhaft gewählte Bedingung kann dauerhaft wahr bleiben. Auch eine fehlende oder unpassende Änderung kann das bewirken. Wenn jeder Durchlauf zu Ende läuft und es keinen anderen Ausstieg gibt, wiederholt sich die Schleife dann endlos. Das heißt Endlosschleife. Eine anfangs falsche Bedingung führt bei einer Schleife mit Prüfung davor dagegen zu keinem Durchlauf.
| Schleifenart | Prüfung der Bedingung | Besonderheit |
|---|---|---|
| while: Prüfung davor | Vor jedem Durchlauf | Bei anfangs falscher Bedingung kein Durchlauf. |
| do-while: Prüfung danach | Nach jedem Durchlauf | Der Inhalt wird mindestens einmal ausgeführt. |
| for: unser Zählmodell | Vor jedem Durchlauf | Startwert, Bedingung und Änderung stehen zusammen. |
Beispiel: Vorher und nachher prüfen (ausgedachtes Beispiel)
- 1solange 5 kleiner als 3:
- 2 gib „A“ aus
- 35 ist nicht kleiner als 3. Diese Schleife gibt nichts aus.
- 4wiederhole:
- 5 gib „B“ aus
- 6solange 5 kleiner als 3
- 7Diese Schleife gibt einmal „B“ aus. Erst danach prüft sie die falsche Bedingung und endet.
Beispiel: Eine fehlende Änderung ergänzen (ausgedachtes Beispiel)
- 1setze rest auf 4
- 2solange rest größer als 0:
- 3 gib rest aus
- 4„rest“ bleibt 4. Die Bedingung bleibt wahr. Wenn jeder Durchlauf zu Ende läuft und es keinen anderen Ausstieg gibt, läuft diese Schleife endlos.
- 5Reparatur: Füge nach der Ausgabe eingerückt „verringere rest um 1“ ein. Dieser Befehl speichert einen um eins kleineren Wert.
- 6Dann erscheinen 4, 3, 2 und 1. Nach dem Verringern auf 0 ist die Bedingung falsch.
Teste dich
Alles auf einen Blick
Programmieren
Vergleiche für ausgewählte Fälle die erwarteten und tatsächlichen Ergebnisse. Weitere Fehler bleiben möglich.
Verfolge nach jedem Befehl, welcher Wert gerade gespeichert ist.
Eine Ausgabe vor der Änderung zeigt den bisherigen Wert.
In einer wenn-sonst-wenn-sonst-Kette wird der erste passende Fall ausgeführt.
Achte darauf, wann geprüft wird. Bleibt die Bedingung wahr, laufen vollständig ausgeführte Durchläufe ohne anderen Ausstieg endlos weiter.
Ausgaben eines Programms verfolgen (ausgedachtes Beispiel)
- 1Aufgabe: Welche Werte gibt dieses Programm aus?
- 2setze menge auf 14 solange menge größer als 5: gib menge aus verringere menge um 4
- 3Start: „menge“ hat den Wert 14. Die Bedingung ist wahr. Die Ausgabe ist 14; danach wird 10 gespeichert.
- 4Nächste Prüfung: 10 ist größer als 5. Die Ausgabe ist 10; danach wird 6 gespeichert.
- 5Nächste Prüfung: 6 ist größer als 5. Die Ausgabe ist 6; danach wird 2 gespeichert.
- 6Nächste Prüfung: 2 ist nicht größer als 5. Die Schleife endet ohne weitere Ausgabe.
- 7Ergebnis: Die Ausgaben sind 14, 10 und 6. Der zuletzt gespeicherte Wert ist 2.
Fehler finden
Fehler in Zeile 2Die falsche Zeile berücksichtigt das Erhöhen zu früh. Richtig: Die erste Ausgabe ist 4, weil die Ausgabe vor dem Erhöhen steht.
Lückentext
Ein Programm besteht einige ausgewählte Tests. Fehler in noch ungeprüften Fällen sind damit . Zu Beginn eines Durchlaufs hat „x“ den Wert 3. Die Schleife gibt zuerst „x“ aus und erhöht es danach um 2. In diesem Durchlauf gibt sie aus. Eine Schleife prüft vor jedem Durchlauf. Jeder Durchlauf wird vollständig ausgeführt; es gibt keinen anderen Ausstieg. Ihre Bedingung bleibt , deshalb wiederholt sie ihren Inhalt endlos.