Bevor ein Programm geschrieben wird, muss feststehen, was es tun soll, in welcher Reihenfolge und wie es auf unterschiedliche Situationen reagiert. Ein Flussdiagramm stellt diesen Plan mit vereinbarten Symbolen und Pfeilen grafisch dar.

Das NIST definiert einen Algorithmus als klar festgelegten mathematischen Prozess oder als Regelmenge, die bei korrekter Ausführung ein vorgeschriebenes Ergebnis liefert. Das Diagramm ist nicht der Algorithmus selbst, sondern eine Darstellungsform, mit der er geprüft und kommuniziert werden kann.

Was ist ein Flussdiagramm?

Die zu ISO 5807 gehörende Definition beschreibt ein Flowchart als grafische Darstellung der Definition, Analyse oder Lösungsmethode eines Problems, bei der Symbole Operationen, Daten und Fluss darstellen. ISO 5807 enthält Symbole und Konventionen für Programm-, Daten- und Systemflussdiagramme.

  • Wo beginnt und endet der Ablauf?
  • Welche Daten gehen hinein und welche Ergebnisse hinaus?
  • Welche Verarbeitung findet statt?
  • Welcher Weg wird bei wahrer oder falscher Bedingung gewählt?
Infografik zu grundlegenden Flussdiagrammsymbolen mit einer Entscheidung zwischen Meer und Bergen Terminal, Prozess, Ein- und Ausgabe, Entscheidung, Pfeile und Verbinder bilden das visuelle Grundvokabular.

Grundlegende Symbole

Oval oder Terminal: Anfang und Ende

Das Terminal kennzeichnet Start oder Abschluss. Ein Diagramm benötigt einen klaren Start und mindestens einen Endpunkt. Flowgorithm bezeichnet das Anfangsterminal der Hauptfunktion gewöhnlich mit Main.

Rechteck: Prozess

Das Rechteck enthält eine interne Aktion:

summe = zahl1 + zahl2 zaehler = zaehler + 1 endpreis = preis * 1.22

Parallelogramm: Ein- und Ausgabe

Das Parallelogramm beschreibt das Lesen oder Ausgeben von Daten:

Lies alter Schreibe "Volljährig"

Raute: Entscheidung

Die Raute enthält eine Bedingung mit zwei üblichen Ergebnissen:

alter >= 18? antwort == "J"? zahl % 2 == 0?

Nur einer der Zweige wird ausgeführt.

Pfeile und Verbinder

Pfeile zeigen die Ausführungsrichtung. Verbinder setzen einen Verlauf an anderer Stelle fort und vermeiden lange Kreuzungen. Zu viele Verbinder können allerdings die Lesbarkeit verschlechtern.

Das Beispiel „Meer oder Berge“ lesen

  1. Der Ablauf startet.
  2. Eine Frage wird ausgegeben.
  3. Die Antwort wird gelesen.
  4. Eine Bedingung prüft, ob die Antwort „J“ ist.
  5. Der wahre Zweig empfiehlt das Meer.
  6. Der falsche Zweig empfiehlt die Berge.
  7. Beide Zweige werden zusammengeführt und der Ablauf endet.

Vom Diagramm zum Pseudocode

START SCHREIBE "Ist das Meer ruhig? J/N" LIES antwort WENN antwort = "J" DANN SCHREIBE "Fahr ans Meer!" SONST SCHREIBE "Die Berge sind besser!" ENDE WENN ENDE

Pseudocode behält die logische Struktur bei, verwendet jedoch geordnete Aussagen statt grafischer Formen.

Vom Diagramm zu Python

Die offizielle Python-Referenz nennt if, while und for klassische Kontrollflusskonstrukte:

antwort = input("Ist das Meer ruhig? J/N: ").strip().upper() if antwort == "J": print("Fahr ans Meer!") else: print("Die Berge sind besser!")

Eingabe wird zu input(), Ausgabe zu print(), die Raute zu if ... else. Die Einrückung ordnet Anweisungen dem jeweiligen Zweig zu.

Drei grundlegende Programmstrukturen

Sequenz

Anweisungen laufen nacheinander.

Auswahl

Eine Bedingung wählt zwischen Alternativen.

Iteration

Eine Rückführung wiederholt Blöcke, bis eine Bedingung nicht mehr gilt.

zaehler = 1 SOLANGE zaehler <= 5 SCHREIBE zaehler zaehler = zaehler + 1 ENDE SOLANGE

Eine korrekte Schleife zeichnen

Sie benötigt Initialisierung, Bedingung, Schleifenkörper und Aktualisierung. Fehlt die Aktualisierung, kann eine Endlosschleife entstehen. Eine falsche Bedingung kann den Körper überspringen oder einmal zu oft ausführen.

Flowgorithm: ausführbare Flussdiagramme

Flowgorithm ist eine kostenlose grafische Programmiersprache für Einsteiger. Deklarationen, Zuweisungen, Ein- und Ausgabe, Entscheidungen, Schleifen und Funktionen können ausgeführt werden. Der offizielle Lehrgang zeigt die Terminals der Hauptfunktion; die Template-Dokumentation listet unter anderem If, While und For.

Der Source Code Viewer übersetzt Diagramme in mehrere Programmiersprachen und markiert die Beziehung zwischen Symbolen und Code. Der Nutzen besteht nicht im blinden Kopieren, sondern im Verstehen dieser Zuordnung.

Sind Flussdiagramme „alte Schule“?

Sie sind älter als moderne Entwicklungsumgebungen, aber weiterhin nützlich. ISO 5807 ist als internationaler Standard veröffentlicht und bestätigt; aktuelle ISO-Richtlinien verweisen für Flowcharts weiterhin darauf.

Sie eignen sich besonders für Unterricht, kurze Abläufe, fachübergreifende Kommunikation, Dokumentation kritischer Prozesse und die Suche nach fehlenden Zweigen. Bei riesigen Programmen, komplexer Parallelität und sehr vielen Ausnahmen können Pseudocode, UML, Entscheidungstabellen oder Zustandsautomaten geeigneter sein.

Regeln für lesbare Diagramme

  • einen eindeutigen Titel verwenden;
  • Hauptfluss von oben nach unten führen;
  • eine Aktion pro Block schreiben;
  • Entscheidungen als prüfbare Fragen formulieren;
  • Wahr/Falsch eindeutig beschriften;
  • Kreuzungen vermeiden;
  • alle Pfade testen;
  • einheitliche Variablennamen verwenden;
  • Diagramm und Programm gemeinsam aktualisieren.

Vom Problem zum Algorithmus

  1. Ziel definieren;
  2. Eingaben auflisten;
  3. Ausgaben festlegen;
  4. Entscheidungsfälle erkennen;
  5. Wiederholungen erkennen;
  6. Fluss zeichnen;
  7. mit Beispieldaten simulieren;
  8. in Code übersetzen;
  9. Ergebnisse testen.

Häufige Fehler

  • Frage im Rechteck: Bedingungen gehören in die Raute.
  • Unbeschriftete Zweige: Wahr und Falsch sind nicht erkennbar.
  • Linien ohne Richtung: die Reihenfolge bleibt unklar.
  • Schleife ohne Aktualisierung: sie kann unendlich laufen.
  • Eingabe und Prozess verwechseln: Lesen ist nicht Berechnen.
  • Zu viele Aktionen pro Block: Präzision geht verloren.
  • Veraltete Dokumentation: das Diagramm entspricht nicht mehr dem Programm.

Häufig gestellte Fragen

Ist ein Flussdiagramm ein Programm?

Normalerweise stellt es einen Algorithmus dar. In Flowgorithm enthalten die Symbole ausführbare Anweisungen und bilden ein visuelles Programm.

Muss jede Entscheidung zwei Ausgänge haben?

Eine boolesche Entscheidung hat gewöhnlich zwei Ergebnisse, die beide dargestellt werden sollten.

Dient das Parallelogramm für Ein- und Ausgabe?

Ja. Der Text im Symbol zeigt die Datenrichtung.

Kann Flowgorithm nach Python übersetzen?

Der Source Code Viewer unterstützt mehrere Sprachen. Das Ergebnis muss trotzdem verstanden und geprüft werden.

Wann ist Pseudocode besser?

Bei langen, stark verschachtelten oder häufig geänderten Algorithmen.

Offizielle Quellen und Vertiefungen