Struktogramm

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen

Ein Struktogramm (auch bekannt als Nassi-Shneiderman-Diagramm) ist ein Diagrammtyp zur Darstellung von Programmentwürfen und Algorithmen. Es wurde 1972/73 von Isaac Nassi und Ben Shneiderman entwickelt.

Einführung

Struktogramme zerlegen ein Gesamtproblem, das mit einem Algorithmus gelöst werden soll, in immer kleinere Teilprobleme, bis nur noch elementare Grundstrukturen wie Befehle und Kontrollstrukturen übrig bleiben. Diese werden dann durch das Struktogramm visualisiert.

In der Softwareentwicklung werden Struktogramme selten eingesetzt; hier werden vorrangig erweiterte Programmablaufpläne (Aktivitätsdiagramme der UML) verwendet. Im Informatik-Unterricht hingegen werden Struktogramme häufig verwendet, um den Aufbau von Algorithmen zu veranschaulichen. Die Erstellung von Struktogrammen ist Bestandteil vieler schulischer Abschlussprüfungen.

Syntax und Aufbau

Der Aufbau eines Struktograms wird in der DIN 66261 definiert.

Strukturblock

Symbol Beschreibung
Anweisung
Jeder Befehl wird in einen rechteckigen Strukturblock geschrieben. Die Strukturblöcke werden nacheinander von oben nach unten durchlaufen. Leere Strukturblöcke sind nur in Verzweigungen zulässig.

Verzweigungen

Symbol Beschreibung
Einfache Auswahl
Wenn die Bedingung im Sinne der booleschen Algebra wahr ist, wird der Anweisungsblock 1 durchlaufen. Trifft die Bedingung nicht zu (falsch), wird der Durchlauf ohne weitere Anweisung fortgesetzt.
Zweifache Auswahl
Wenn die Bedingung wahr ist, wird Anweisungsblock 1 durchlaufen, sonst Anweisungsblock 2.
Mehrfachauswahl (Fallauswahl)
Besonders bei mehr als drei abzuprüfenden Bedingungen geeignet. Der Wert der Variable wird geprüft und der entsprechende Anweisungsblock wird durchlaufen.
Verschachtelte Auswahl
Alle Varianten der Verzweigung lassen sich auch verschachtelt modellieren.

Schleifen

Symbol Beschreibung
Kopfgesteuerte Schleife
Die Schleifenbedingung wird vor dem Schleifenrumpf geprüft (WHILE-Schleife). Der Schleifenkörper wird nur durchlaufen, solange die Bedingung wahr ist.
Zählschleife
Sonderform der kopfgesteuerten Schleife mit fester Anzahl von Durchläufen (FOR-Schleife). Enthält Initialisierung, Endwert und Schrittweite.
Fußgesteuerte Schleife
Die Bedingung wird nach dem Schleifenrumpf geprüft (DO-WHILE-Schleife). Der Schleifenkörper wird mindestens einmal durchlaufen.

Aufruf

Symbol Beschreibung
Aufruf
Symbol für den Aufruf eines Unterprogramms bzw. einer Methode. Nach deren Durchlauf wird zur aufrufenden Stelle zurückgesprungen.

Konventionen

  • Allgemeingültigkeit: Struktogramme sollten keine programmiersprachenspezifische Syntax enthalten
  • Deklaration: Variablen und Konstanten sind im ersten Anweisungsblock zu deklarieren
  • Exklusivität: Jeder Befehl erhält einen eigenen Strukturblock
  • Zuweisungen: Werden mit einem nach links gerichteten Pfeil (←) oder mit := dargestellt
  • Benennung: Jedes Struktogramm benötigt einen Titel zur Identifikation

Beispiel

Folgendes Struktogramm beschreibt einen Algorithmus, der eine Zahl in eine textbasierte Note umwandelt:

Der Algorithmus beginnt mit einem Titel, gefolgt von der Deklaration der benötigten Variablen. Es folgen Befehle zur Bildschirmausgabe und Eingabe, eine Mehrfachverzweigung je nach Wert der Variable, und abschließend die Ausgabe des Ergebnisses.