Rainer Kröning, Berlin

Kontrollstrukturen

Mit Kontrollstrukturen wird der Ablauf eines Algorithmus gesteuert. Die Darstellung von Kontrollstrukturen kann in Form von

In den nachfolgenden Beispielen zu den verschieden Darstellungsformen von Kontrollstrukturen wird folgender Sachverhalt dargestellt:

Beispiel:

Für das Seminar "Systemmodellierung" wird Rabatt gewährt, wenn der Kunde bereits mehr als 3 Seminare in diesem Geschäftsjahr bestellt hat, allerdings nur, wenn seine Rechnungen in diesem Geschäftsjahr nie länger als 2 Wochen unbezahlt waren. Der Rabatt beträgt 10% für das normale Seminar und 20% für das Seminar mit dem anschließenden Workshop.

Pseudo Code

Pseudo Code wird in Anlehnung an problemorientierte Programmiersprachen dargestellt. Für die Kontrollstruktur wird die Syntax der Programmiersprachen verwendet (z. B. if - then - else - endif, while - do - end while) , sonstige Anweisungen werden im allgemeinen verbal formuliert.

Ein Algorithmus in Form eines Pseudo Codes kann relativ einfach in die Notation einer Programmiersprache übertragen werden.

Beispiel für Pseudo Code

Beispiel für Pseudo Code

Programmablaufplan

Die grafische Darstellung von Programmablaufplänen (PAP) ist in DIN 66001 geregelt. Da mit den in der Norm festgelegten Elementen eine strukturierte Programmierung jedoch nicht erzwungen werden kann, werden Kontrollstrukturen heute fast ausschließlich mit Nassi-Shneiderman-Diagrammen beschrieben.

Beispiel für einen Programmablaufplan

Beispiel für einen Programmablaufplan

Nassi-Shneiderman-Diagramme

Seit Anfang der 70er Jahre die strukturierte Programmierung entwickelt wurde, ist es state of the art, den Kontrollfluß nur mit den Basiskonstrukten

zu beschreiben. Die Grundlagen gehen dabei zurück auf äere Arbeiten zum Thema Korrektheitsbeweis für Programme u.a. von Dijkstra.

Allgemeiner wird ein Programm dann als strukturiert" bezeichnet, wenn sein Flußdiagramm mit einer vorgegebenen Menge von Kontrollflußelementen, die nur einen Eingang und einen Ausgang haben, als eine geschachtelte Kombination dieser Elemente dargestellt werden kann.

Die grafische Darstellung erfolgt mit Strukturblöcken, deren Symbole auf Nassi und Shneiderman zurückgehen.

Symbol Bedeutung
Einfacher Strukturblock Er repräsentiert eine Reihe von sequentiell abzuarbeitenden Verarbeitungsbefehlen.
Auswahlstrukturblöcke Eine Verzweigung gemäß vorgegebener Kriterien. Jeder Zweig stellt wieder einen Strukturblock dar. Die Zweige führen am Ende des Strukturblocks wieder zusammen, d.h. die Unterkante ist als gemeinsamer Ausgang zu verstehen.
Einfachverzweigung Bei der Einfachverzweigung wird aufgrund der Auswertung der Bedingung die true- oder die false-Aktion durchgeführt.
Mehrfachverzweigung Bei der Mehrfachverzweigung wird der Inhalt einer Variablen mit vorgegebenen Werten verglichen. Es wird die dem Wert zugeordnete Aktion durchlaufen.
Wiederholungsstrukturblöcke Der Wiederholungsstrukturblock zeigt die Wiederholung eines Prozesses - des Schleifenrumpfes - in Abhängigkeit von einer Bedingung.
precheck loop Bei dieser Art der Schleife erfogt die Prüfung der Schleifenbedingung vor Durchlauf des Schleifenrumpfes. Die Schleife wird solange durchlaufen, wie die Bedingung erfüllt ist.
Der Rumpf kann auch gar nicht durchlaufen werden.
postcheck loops Die Prüfung auf die Abbruchbedingung erfolgt innerhalb (oder am Ende) der Schleife. Hier wird der Schleifenrumpf oder der erste Teil mindestens einmal durchlaufen.
Ist die Abbruchbedingung nicht erfüllt, dann wird der Rest des Schleifenrumpfes durchlaufen und anschließend mit dem ersten teil des Schleifenrumpfes wieder begonnen.
Wenn die Abbruchbedingung erfüllt ist, wird sofort zum Schleifenende verzweigt.

Elementare Nassi-Shneiderman-Konstrukte

Beispiel für ein Nassi-Shneiderman-Diagramm

Beispiel für ein Nassi-Shneiderman-Diagramm

Weisheit

Verbringe nicht die Zeit mit der Suche nach einem Hindernis. Vielleicht ist keines da.

Franz Kafka
1883 – 1924
tschechischer Schriftsteller

Musikerwitz

Neulich ist im Bodensee eine komplette Musikkapelle ertrunken. Warum?
Der Marsch war länger als der Steg...