Nassi-Shneidermann
Die Symbole für das Erstellen von Struktogrammen (Nassi-Shneiderman-Diagramm) belaufen sich auf die Programmkonstrukte Sequenz, Auswahl und Wiederholung. Diese können vielfältig modifiziert werden und damit auf die Problematik des Anwenders angepasst werden.
Ein Struktogramm wird immer von oben nach unten durchlaufen. Die Blöcke können beliebig oft geschachtelt werden, sowie aufeinander folgen. Dabei wird ein Block immer durch seinen Eingang betreten und durch seinen Ausgang verlassen.
- Sequenz
Eine Sequenz (Abbildung "Sequenz") kann eine beliebige Anzahl von Programmanweisungen beinhalten, die nacheinander schrittweise abgearbeitet werden.
- Auswahl
Eine Auswahl (Abbildung "Auswahl") beschreibt eine Verzweigung aufgrund einer eindeutigen Bedingung. Dabei gibt es mehere Möglichkeiten den Auswahl-Typ zu erweitern:
Mehrfachverzweigung (Abbildung "AuswahlA")
Mehrfachverzweigung mit alternativer Verarbeitung (Abbildung "AuswahlB")
- Wiederholung
Dieser Block führt aufgrund einer Bedingung eine bestimmte Anzahl von Durchläufen aus. In Abbildung "Wiederholung" wird die Bedingung am Anfang des Blocks überprüft. Man nennt die Bedingung in diesem Fall Ausführungsbedingung. Ist die Bedingung erfüllt, wird der Anweisungsblock durchlaufen. Andernfalls wird der nachfolgende Programmabschnitt abgehandelt.
Abwandlungen des Wiederholungsblocks:
Wiederholung mit Abbruchbedingung (Abbildung "Abbruchbedingung")
Die Bedingung wird am Ende der Schleife überprüft. Ist sie erfüllt, wird die folgende Sequenz bearbeitet.Wiederholung mit unendlicher Schleife (loop) (Abbildung "Endlosschleife")
Eingangs- und Abbruchbedingung werden nicht explizit abgefragt. Dieser Block ist nur dann funktionsfähig, wenn innerhalb des zu wiederholenden Blockes mindestens eine Abbruchbedingung vorgesehen ist, die das Verlassen des Blockes ermöglicht.
Analogismus in Matlab
Sequenz: |
jede Zuweisung wie v = [1 3 4] |
Auswahl: |
if-else-Block |
Mehrfachverzweigung: | if-ifelse-Block switch-Block |
Mehrfachverzweigung mit alternativer Verarbeitung: |
if-ifelse-else-Block switch-Block mit otherwise |
Wiederholung: |
for-Block while-Block |
Wiederholung mit Abbruchbedinung: |
nicht vorhanden |
Wiederholung mit unendlicher Schleife: |
while(true)-Block mit Abbruchbedingung |
Beispiel:
Voraussetzung zum Bestehen der GeDV-Prüfung ist die Anmeldung zur GeDV-Klausur (Abbildung "Struktogramm"). Dies wird in einer Sequenz eingetragen. Nach Eingang der PST-Note sowie der Abgabe der GeDV-Klausur, wird in einer Schleife mit Abbruchbedingung abgefragt, ob die GeDV-Note besser als 5,0 ist. Wenn nein, dann muss der Kurs bzw. die Prüfung so lange wiederholt werden, bis die Prüfung bestanden wurde.
Ist die Note besser als 5,0, also die Prüfung bestanden, gibt es die Möglichkeit der Notenverbesserung. In einer Auswahl wird abgefragt, ob die PST-Note besser als die GeDV-Note ist. Ist dies der Fall (Ja), tritt das Notenverbesserungsprozedere ein. Es wird von der GeDV 0,3 abgezogen und gerundet. Ist dies nicht der Fall (Nein), bleibt die Note bestehen. In jedem Fall ist die Prüfung bestanden.