Ein Struktogramm zerlegt komplexe Programme in einfache, hierarchisch angeordnete Schritte, wobei jeder Schritt in einem rechteckigen Block dargestellt wird. Diese Blöcke werden von oben nach unten durch Linien verbunden, die den Programmablauf repräsentieren.

Struktogramme sind in der Norm DIN 66261-2 erfasst. Diese Norm legt fest, wie Struktogramme aufgebaut und dargestellt werden sollten, um eine einheitliche und standardisierte Darstellung von Algorithmen und Programmen zu gewährleisten. Sie definiert die verschiedenen Symbole, die für Anweisungen, Verzweigungen und Schleifen verwendet werden, sowie die Regeln für die Verbindung dieser Symbole.

Die DIN 66261-2 ist Teil einer Reihe von Normen, die sich mit der Darstellung und Dokumentation von Programmen und Software befassen

Sinnbilder nach Nassi-Shneiderman

Die meisten der nachfolgenden Strukturblöcke[1] können ineinander geschachtelt werden. Das aus den unterschiedlichen Strukturblöcken zusammengesetzte Struktogramm ist im Ganzen rechteckig, also genauso breit wie sein breitester Strukturblock.

Process Symbol
Anweisung

Jede Anweisung 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.
Alternative Begriffe: Folge, Befehlsfolge, Anweisungsfolge, Anweisungsblock, Linearer Ablauf, Sequenz.

Decision Symbol

Alternative Begriffe: Verzweigung, Alternative, Selektion.

1 möglicher Block

Einfache Auswahl

Nur wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen (if). Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Trifft die Bedingung nicht zu (falsch), wird der Durchlauf ohne eine weitere Anweisung fortgeführt (Austritt unten).

Alternative Begriffe: Bedingte Verarbeitung, Einfache Auswahl/Selektion, Einfache Verzweigung.

2 mögliche Blöcke

Zweifache Auswahl

Wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen; trifft die Bedingung nicht zu (falsch), wird der Anweisungsblock 2 durchlaufen (if then else). Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Austritt unten nach Abarbeitung des jeweiligen Anweisungsblocks.

Alternative Begriffe: Einfache Alternative, Zweifache Auswahl, Alternative Verzweigung/Verarbeitung.

Beispiel für Verschachtelung

Mehrfachauswahl

Es folgt eine weitere Bedingung. Die Verschachtelung ist ebenso im Nein-Fall noch möglich.

Case-Statement

Der Wert von „Variable“ kann bedingt auf Gleichheit (Switch Case in Java) aber auch auf Bereiche (größer/kleiner bei Zahlen) geprüft werden. Der entsprechend zutreffende „Fall“ mit dem zugehörigen Anweisungsblock wird durchlaufen (switch, select). Eine Fallauswahl kann stets in eine verschachtelte Auswahl umgewandelt werden – etwa wenn die später eingesetzte Programmiersprache Fallauswahlen nicht kennt.
Alternative Begriffe: Mehrfache Alternative, Fallauswahl, Mehrfachauswahl, Case, Select.

Schleifen


Iteration Symbol

Zählergesteuerte Schleife

Wiederholungsstruktur, bei der die Anzahl der Durchläufe festgelegt ist (for). Als Bedingung muss eine Zählvariable angegeben und mit einem Startwert initialisiert werden. Ebenso muss ein Endwert und die (Zähl-)Schrittweite angegeben werden. Nach jedem Durchlauf des Schleifenkörpers (Anweisungsblock 1) wird die Zählvariable um die Schrittweite inkrementiert (bzw. bei negativer Schrittweite dekrementiert) und mit dem Endwert verglichen. Ist der Endwert überschritten bzw. unterschritten, wird die Schleife verlassen.
Alternative Begriffe: Zählergesteuerte Schleife.

Begin-End Symbol

Hier handelt es sich um Schleifen, wie man sie in PL/I und ALGOL findet. Sie zeichnen sich durch zwei Bedingungen aus.
Alternative Begriffe: Wiederholung mit Bedingungsprüfung, prüfende Schleife.

Sonderfall: End=true

Abweisende (kopfgesteuerte) Schleife

Wiederholungsstruktur mit vorausgehender Bedingungsprüfung (while).

Schleifenanweisung: (while)

Abbruchanweisung: automatisch, wenn vorausgehende Bedingungsprüfung der geprüften Expression = falsch

Der Schleifenkörper (Anweisungsblock 1) wird nur durchlaufen, wenn (und solange) die Bedingung zutreffend (wahr) ist.

Diese Symbolik wird auch für die Zählschleife (Anzahl der Durchläufe bekannt) benutzt.
Alternative Begriffe: Wiederholung mit vorausgehender Bedingungsprüfung, Abweisende/vorprüfende/kopfgesteuerte Schleife.



Sonderfall: Begin=true

Abweisende (fußgesteuerte) Schleife

Wiederholungsstruktur mit nachfolgender Bedingungsprüfung für den Abbruch (loop).

Schleifenanweisung: loop

Abbruchanweisung: automatisch, wenn nachfolgende Bedingungsprüfung der Expression = falsch

Der Schleifenkörper (Anweisungsblock 1) wird mindestens einmal durchlaufen, auch wenn die Bedingung von Anfang an nicht zutreffend (falsch) war!
Alternative Begriffe: Wiederholung mit nachfolgender Bedingungsprüfung, Nicht abweisende/nachprüfende/fußgesteuerte Schleife.

Sonderfall: Begin=End=true

Endlosschleife

Wiederholungsstruktur, die allenfalls durch eine Abbruchanweisung (break) verlassen werden kann.

Schleifenanweisung: while(true)

Abbruchanweisung: break
Alternative Begriffe: Wiederholung ohne Bedingungsprüfung, Endlosschleife.

Break

Aussprung

Der Aussprung (break; auch Exit genannt) stellt die Beendigung eines Programmteils dar. Er sollte nicht mit der unbedingten Sprunganweisung (goto) verwechselt werden, die Nassi und Shneiderman mit den Struktogrammen vermeiden wollten.
Alternative Begriffe: Abbruchanweisung, Aussprung.

Blockaufruf

Aufruf

Symbol für den Aufruf eines Unterprogramms bzw. einer Prozedur, Funktion oder Methode. Nach deren Durchlauf wird zu der aufrufenden Stelle zurückgesprungen und der nächstfolgende Strukturblock durchlaufen. Dieses Symbol ist nicht genormt.

Quelle: https://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm

Last modified: Tuesday, 13 August 2024, 7:55 AM