Informatik

Programmieren lernen: Grundlagen einfach erklärt

Programmieren lernen: Grundlagen einfach erklärt
Programmieren lernen: Grundlagen einfach erklärt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Beim Programmieren formulierst du eine Lösung so genau, dass ein Computer sie ausführen kann. Dazu ordnest du Befehle, speicherst Werte, triffst Entscheidungen und wiederholst Schritte.

Auf dieser Seite entwickelst du einen kleinen Programmablauf, prüfst ihn schrittweise und findest typische Fehler. Die Grundideen gelten für visuelle Blocksprachen ebenso wie für textbasierte Sprachen wie Python.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Problem zum Programm

Ein Computer errät nicht, was du erreichen möchtest. Du musst die Aufgabe zerlegen und jeden nötigen Schritt eindeutig beschreiben.

Definition

Programm

Ein Programm ist eine in einer Programmiersprache formulierte Folge von Befehlen. Der Computer führt diese Befehle nach den Regeln der Sprache aus.

Ein hilfreicher Arbeitszyklus besteht aus sechs Schritten:

  1. Aufgabe verstehen: Was soll am Ende geschehen?
  2. Lösungsweg entwickeln: Welche Einzelschritte sind nötig?
  3. Lösung formulieren: Wie lassen sich die Schritte als Befehle ausdrücken?
  4. Programm ausführen: Was macht der Computer tatsächlich?
  5. Programm testen: Funktioniert es auch bei unterschiedlichen Eingaben?
  6. Programm verbessern: Welche fehlerhaften oder unnötigen Schritte müssen geändert werden?

Programmieren endet also nicht mit dem Schreiben des ersten Entwurfs. Testen und Verbessern gehören dazu.

Teste dich
Frage 1 von 1LeichtWarum wird ein Programm nach dem Schreiben getestet?
Lösung: Um zu prüfen, ob es bei den vorgesehenen Fällen richtig arbeitet — Beim Testen suchst du gezielt nach Abweichungen zwischen dem geplanten und dem tatsächlichen Ergebnis.
Befehle in die richtige Reihenfolge bringen

Die einfachste Grundstruktur ist die Sequenz: Befehle werden nacheinander ausgeführt. Schon eine vertauschte Reihenfolge kann das Ergebnis verändern.

Definition

Sequenz

Eine Sequenz ist eine festgelegte Folge von Befehlen. Jeder Befehl wird an seiner vorgesehenen Stelle ausgeführt.

Beispiel

Ein Zeichenprogramm soll zuerst einen Stift absenken und danach eine Linie zeichnen.

  1. Stift absenken
  2. Linie zeichnen
  3. Stift anheben

Würde das Programm den Stift zuerst anheben, entstünde keine sichtbare Linie. Der Fehler liegt dann nicht in einem einzelnen Befehl, sondern in der Reihenfolge.

Merke

Frage bei einer Befehlsfolge immer: Was muss bereits passiert sein, bevor dieser Schritt funktionieren kann?

Teste dich
Frage 1 von 1MittelEin Roboter soll eine Kiste aufnehmen und danach abstellen. Welche Reihenfolge ist sinnvoll?
Lösung: Zur Kiste fahren, Kiste aufnehmen, zum Ziel fahren, Kiste abstellen — Ordne die Befehle nach ihren Voraussetzungen: Erst erreichen, dann aufnehmen, anschließend transportieren und zuletzt abstellen.
Werte mit Variablen verfolgen

Programme müssen sich häufig etwas merken: einen Namen, einen Messwert oder einen Punktestand. Dafür verwenden sie Variablen.

Definition

Variable

Eine Variable ist ein benannter Speicherplatz für einen Wert. Eine Zuweisung legt fest, welcher Wert dort gespeichert wird. Eine spätere Zuweisung ersetzt den bisherigen Wert.

Beispiel

Der folgende sprachunabhängige Pseudocode zeigt den Denkweg. Er ist keine festgelegte Programmiersprache.

  1. punkte erhält 2
  2. punkte erhält punkte + 1
  3. gib punkte aus

Nach Schritt 1 enthält punkte den Wert 2. Schritt 2 liest diesen Wert, erhöht ihn um 1 und speichert das Ergebnis 3 wieder unter demselben Namen. Deshalb gibt Schritt 3 den Wert 3 aus.

Eingabe bedeutet, dass ein Programm einen Wert erhält. Ausgabe bedeutet, dass es ein Ergebnis sichtbar oder anderweitig nutzbar macht.

Teste dich
Frage 1 von 1MittelEine Variable status enthält zuerst bereit und erhält danach den Wert gestartet. Welchen Wert enthält sie anschließend?
Lösung: gestartet — Verfolge Zuweisungen in ihrer Reihenfolge. Entscheidend ist der zuletzt zugewiesene Wert.
Mit Bedingungen zwischen Fällen entscheiden

Ein Programm soll oft nicht immer dasselbe tun. Eine Bedingung prüft eine Aussage, die wahr oder falsch sein kann.

Definition

Fallunterscheidung

Bei einer Fallunterscheidung führt das Programm abhängig von einer Bedingung unterschiedliche Befehle aus. Häufig wird sie als „wenn – sonst“ formuliert.

Beispiel

Eine Maschine darf nur starten, wenn ihre Tür geschlossen ist:

  1. lies tür_geschlossen ein
  2. wenn tür_geschlossen wahr ist: gib Start frei aus
  3. sonst: gib Start gesperrt aus

Die Eingabe kann hier nur wahr oder falsch sein. Der Wenn-Zweig behandelt den ersten Fall, der Sonst-Zweig den zweiten. Damit ist die Unterscheidung vollständig.

Merke

Prüfe bei einer Fallunterscheidung: Welche Eingaben erfüllen die Bedingung, und was geschieht mit allen übrigen Eingaben?

Teste dich
Frage 1 von 1MittelEin Programm unterscheidet nur wenn antwort = ja, besitzt aber keinen Sonst-Zweig. Wann kann das problematisch sein?
Lösung: Wenn auch für andere Antworten ein festgelegtes Verhalten nötig ist — Eine Fallunterscheidung ist für die Aufgabe vollständig, wenn jeder relevante Eingabefall ein vorgesehenes Verhalten hat.
Wiederholungen mit Schleifen steuern

Müsstest du denselben Befehl zehnmal aufschreiben, wäre das unübersichtlich. Eine Schleife wiederholt einen oder mehrere Befehle.

Definition

Schleife

Eine Schleife ist eine Kontrollstruktur für Wiederholungen. Sie kann eine festgelegte Anzahl von Durchläufen haben oder so lange laufen, wie eine Bedingung erfüllt ist.

Für eine bekannte Anzahl eignet sich eine Zählschleife:

wiederhole 3-mal: spiele einen Ton

Für eine vom Zustand abhängige Wiederholung eignet sich eine bedingungsgesteuerte Schleife:

  1. wiederhole, solange kisten_übrig wahr ist
  2. packe eine Kiste
  3. aktualisiere kisten_übrig

Der dritte Schritt ist entscheidend. Wird der geprüfte Zustand niemals verändert, kann die Bedingung dauerhaft wahr bleiben. Dann entsteht eine unbeabsichtigte Endlosschleife.

Merke

Frage bei jeder bedingungsgesteuerten Schleife: Welcher Befehl kann die Abbruchbedingung verändern?

Teste dich
Frage 1 von 2MittelDu kennst vor dem Start genau, wie oft eine Lampe blinken soll. Welche Schleife passt am besten?
Lösung: Eine Schleife mit festgelegter Anzahl von Wiederholungen — Ist die Anzahl vorher bekannt, macht eine Zählschleife die gewünschte Begrenzung sichtbar.
Frage 2 von 2SchwerEine Schleife läuft, solange ziel_erreicht falsch ist. Was muss im Schleifenablauf möglich sein?
Lösung: Der Zustand ziel_erreicht muss geprüft und schließlich verändert werden können — Eine bedingungsgesteuerte Schleife braucht einen nachvollziehbaren Weg zu einem Zustand, bei dem sie endet.
Ein vollständiges Programm planen und testen

Nun verbindest du Sequenz, Variable, Bedingung und Schleife. Ein kleines Quiz soll drei Antworten prüfen und die richtigen Antworten zählen.

Beispiel

Plan in Pseudocode:

  1. punkte erhält 0
  2. wiederhole 3-mal:
  3. lies eine Antwort ein
  4. wenn die Antwort richtig ist:
  5. punkte erhält punkte + 1
  6. gib punkte aus

Angenommen, die erste und die dritte Antwort sind richtig. Dann entwickelt sich punkte so:

  • Start: 0
  • nach der ersten Antwort: 1
  • nach der zweiten Antwort: 1
  • nach der dritten Antwort: 2

Die Ausgabe lautet daher 2. Die Schleife endet nach drei Durchläufen; eine Endlosschleife ist ausgeschlossen.

So testest du gezielt

Ein einzelner Test genügt nicht. Verwende Fälle, die unterschiedliche Teile des Programms prüfen:

  • alle Antworten richtig;
  • alle Antworten falsch;
  • eine Mischung aus richtigen und falschen Antworten;
  • genau drei Eingaben, damit du auch das Ende der Schleife prüfst.

Wenn das Ergebnis falsch ist, verfolge die Befehle Schritt für Schritt. Notiere nach jeder Zuweisung den aktuellen Variablenwert und prüfe, welcher Zweig ausgeführt wird. Diese Fehlersuche wird häufig Debugging genannt.

Definition

Debugging

Debugging ist das systematische Suchen, Erklären und Beheben von Programmfehlern. Dazu beobachtest du, was das Programm tatsächlich tut, und vergleichst es mit dem geplanten Ablauf.

Teste dich
Frage 1 von 1SchwerDas Quiz zählt richtige Antworten, gibt aber immer 0 aus. Welchen Schritt solltest du zuerst prüfen?
Lösung: Ob punkte im richtigen Zweig erhöht und der neue Wert gespeichert wird — Verfolge zuerst den Datenfluss: Eingabe, Bedingung, ausgeführter Zweig und neuer Variablenwert.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Programmieren
    • Ausgangspunkt: Aufgabe verstehen und Lösungsweg planen
    • Sequenz: Befehle sinnvoll ordnen
    • Variable: Werte speichern und verändern
    • Bedingung: zwischen vollständig behandelten Fällen wählen
    • Schleife: Wiederholungen begrenzen oder durch einen Zustand beenden
    • Testen: tatsächliches mit gewünschtem Verhalten vergleichen
    • Verbessern: gefundene Fehler gezielt beheben

Ein funktionierendes Programm entsteht durch einen Kreislauf: Du planst einen eindeutigen Ablauf, formulierst ihn mit passenden Grundstrukturen, führst ihn aus, testest verschiedene Fälle und verbesserst erkannte Fehler.

Abschluss-Check
Teste dich
Frage 1 von 4LeichtWelche Grundstruktur speichert einen Wert unter einem Namen?
Lösung: Variable — Eine Variable bewahrt einen Wert auf, bis eine spätere Zuweisung ihn ersetzt.
Frage 2 von 4MittelEin Programm soll für die Eingaben ja und nein jeweils eine eindeutige Ausgabe liefern. Was ist nötig?
Lösung: Beide Eingabefälle müssen durch die Fallunterscheidung behandelt werden — Bestimme zuerst alle relevanten Fälle und ordne jedem Fall das gewünschte Verhalten zu.
Frage 3 von 4SchwerEine Figur soll laufen, bis sie ein Ziel erreicht. Die Schleife endet nicht. Welche Änderung trifft die wahrscheinlichste Ursache?
Lösung: Im Schleifenablauf den Zielzustand erneut ermitteln und so die Abbruchbedingung aktualisieren — Bei einer bedingungsgesteuerten Schleife muss der Ablauf den geprüften Zustand so verändern können, dass die Bedingung schließlich falsch wird.
Frage 4 von 4SchwerDu hast ein Programm mit Sequenz, Variable, Bedingung und Schleife entworfen. Was ist der sinnvollste nächste Schritt?
Lösung: Mit unterschiedlichen Eingaben ausführen, Werte und Zweige verfolgen und gefundene Fehler verbessern — Testen verbindet den Plan mit dem beobachtbaren Verhalten. Unterschiedliche Testfälle helfen dir, Fehler einzugrenzen und gezielt zu beheben.

Passend dazu