Darstellungsformen für Algorithmen

Aus Informatik
Wechseln zu: Navigation, Suche

Es gibt verschiedene Darstellungsformen, um algorithmische Grundbausteine und Algorithmen darzustellen. An dieser Stelle soll auf die drei wichtigsten eingegangen werden:

Pseudocode
Der Pseudocode stellt einen Algorithmus in einer Schreibweise in der Art einer Programmiersprache dar, die aber in der Regel näher an der natürlichen Sprache ist als am formalen Programmcode. Es gibt keine Standardisierung bzw. Vorschrift, wie ein Pseudocode auszusehen hat; die Ablaufstrukturen werden grob durch Texte und fest vorgeschriebene Schlüsselwörter beschrieben. Guter Pseudocode zeichnet sich durch eine kurze präzise Beschreibung des Algorithmus aus.
Struktogramm
Struktogramme (auch nach ihren Entwicklern Nassi-Shneidermann-Diagramme genannt) ist eine genormte (DIN 66261) Entwurfsmethode für Algorithmen. Die Methode zerlegt ein Gesamtproblem, das man mit dem gewünschten Algorithmus lösen will, in immer kleinere Teilprobleme bis schließlich nur noch elementare Grundstrukturen wie Sequenzen und Kontrollstrukturen zur Lösung des Problems übrig bleiben.
In der Softwareentwicklung werden Struktogramme sehr selten eingesetzt, da normaler Programmcode einfacher zu schreiben und zu verändern ist: Korrigiert man einen Fehler oder macht eine Ergänzung, muss man ein Struktogramm in der Regel komplett neu zeichnen. Im Informatik-Unterricht werden Struktogramme dagegen verwendet, damit Schüler den Aufbau logischer Abläufe, die für die Programmierung nötig sind, trainieren können. Die Erstellung von Struktogrammen aufgrund von Beschreibungen verschiedener Problemstellungen, die wegen wiederkehrender gleicher Vorgehensweise automatisiert werden können, ist immer noch Bestandteil vieler schulischer Abschlussprüfungen.
Programmablaufplan (PAP)
Der Programmablaufplan (auch Flussdiagramm oder Programmstrukturplan) ist eine graphische Darstellung zur Umsetzung eines Algorithmus in einem Programm und beschreibt die Folge von Operationen zur Lösung einer Aufgabe. Die Symbole für Programmablaufpläne sind in der DIN 66001 genormt.
Programmablaufpläne werden oft unabhängig von Computerprogrammen auch zur Darstellung von Prozessen und Tätigkeiten eingesetzt. Im Bereich der Softwareerstellung werden sie nur noch selten verwendet: Programmcode moderner Programmiersprachen bietet ähnlichen Abstraktionsgrad, ist jedoch einfacher zu erstellen und in der Regel sehr viel einfacher zu verändern.

Das Konzepte für den Programmablaufplan und das Nassi-Shneiderman-Diagramm (Struktogramm) stammen aus den 1960er-Jahren und bilden einen linearen Programmfluss ab. Für die Abbildung objektorientierter Programmkonzepte haben sich beide Konzepte als ungeeignet erwiesen. Als Konsequenz wurde die Unified Modelling Language (UML) für objektorientierte Programmkonzepte entwickelt.

Grundelemente des Pseudocode, von Struktogrammen und Programmablaufplänen

Strukturelement Pseudocode Struktogramm Programmablaufplan
Verarbeitung
(Elementarblock)
Anweisung Strukto anw.png Pap anw.png
Reihenfolge
(Sequenz)
Anweisung1
Anweisung2
Anweisung3
Strukto reihe.png Pap reihe.png
Verzweigung
(Alternative)
wenn Bedingung
  dann Anweisung
Strukto alt1.png Pap alt1.png
wenn Bedingung
  dann Anweisung1
  sonst Anweisung2
Strukto alt2.png Pap alt2.png
Fallunterscheidung für Variable
  Wert 1 : Anweisung1
  Wert 2 : Anweisung2
  ...
  [sonst Anweisung]
Strukto fall.png Pap fall.png
Zählschleife von Zähler:=Startwert bis Endwert
  Anweisung
Strukto zaehlschl.png Pap zaehlschl.png
anfangsgeprüfte Schleife solange Bedingung
  Anweisung
Strukto anfschl.png Pap anfschl.png
endgeprüfte Schleife wiederhole
  Anweisung
bis Bedingung
Strukto endschl.png Pap endschl.png