Struktogramme
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
Jede Anweisung wird in einen rechteckigen Strukturblock geschrieben. |
Decision Symbol
Alternative Begriffe: Verzweigung, Alternative, Selektion.
1 möglicher Block
Nur wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen ( Alternative Begriffe: Bedingte Verarbeitung, Einfache Auswahl/Selektion, Einfache Verzweigung. |
2 mögliche Blöcke
Wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1
durchlaufen; trifft die Bedingung nicht zu (falsch), wird der
Anweisungsblock 2 durchlaufen ( Alternative Begriffe: Einfache Alternative, Zweifache Auswahl, Alternative Verzweigung/Verarbeitung. |
Beispiel für Verschachtelung
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 ( |
Schleifen
Iteration Symbol
Wiederholungsstruktur, bei der die Anzahl der Durchläufe festgelegt ist ( |
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. |
Sonderfall: End=true
Wiederholungsstruktur mit vorausgehender Bedingungsprüfung ( Schleifenanweisung: ( 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. | |
|
|
Sonderfall: Begin=true
Wiederholungsstruktur mit nachfolgender Bedingungsprüfung für den Abbruch ( Schleifenanweisung: 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! |
Sonderfall: Begin=End=true
Wiederholungsstruktur, die allenfalls durch eine Abbruchanweisung ( Schleifenanweisung: Abbruchanweisung: |
Break
Der Aussprung ( |
Blockaufruf
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. |