Zum Hauptinhalt springen

Struktogramme

Struktogramme sind eine Möglichkeit, Programme und Algorithmen grafisch darzustellen. Diese Dartstellungsform wurde 1973 von Isaac Nassi und Ben Shneiderman vorgeschlagen und heisst deshalb auch Nassi-Shneiderman-Diagramm.1

Farben

Die hier verwendeten Farben nur eine optische Hilfe. Sie haben keine besondere Bedeutung.

Sequenz 👣

In einem Struktogramm wird jeder Befehl in einen rechteckigen Kasten geschrieben. Befehle müssen nicht in einer Programmiersprache geschrieben werden.

Mache zuerst das, ...
...dann das hier...
...und nun noch das da.

Wiederholung 🔁

Eine Wiederholung wird wie folgt dargestellt.

Tue Folgendes solange...
Mach das...
...und nun noch das da.
Bemerke
  • Beim Struktogramm wird der wiederholte Teil durch die Einrückung ersichtlich. Auch in Python werden wiederholte Sequenzen (Zeilen 4-5) visuell mit einem Tabulator eingerückt.
  • Der Doppelpunkt am Zeilenende zeigt an, dass eine eingerückte Sequenz (beim Programmieren spricht man von einem Codeblock) folgt.

Bedingte Ausführung (Verzweigung) ☑️

Wenn ein Befehl nur unter bestimmten Bedingungen ausgeführt werden soll, stellen wir dies folgendermassen dar:

Wenn...
Tue dies...
Sonst...
Tue jenes...
Bemerke

Für die bedingte Ausführung (auch Verzweigung genannt) gibt es auch andere Darstellungsformen, welche wir hier nicht behandeln.

Nicht bei jedem Algorithmus braucht es einen Sonst-Block zu einem Wenn-Block. Das zeigt folgendes Beispiel:

Solange die Aufgabe nicht gelöst ist:
Bearbeiten Sie die Aufgabe
Wenn Sie Unterstützung brauchen:
Rufen Sie die Lehrperson

Eine Verzweigung kann auch mehr als nur einen oder zwei "Ausgänge" haben. Das können wir mit Sonst, wenn-Blöcken ausdrücken:

Wenn es regnet:
Ziehe eine Regenjacke an.
Sonst, wenn die Sonne scheint:
Trage eine Sonnenbrille.
Sonst, wenn es kalt ist:
Ziehe einen Pullover an.
Sonst:
Ziehe an, was du möchtest.
Bemerke
  • Wir prüfen nur so lange die jeweils nächste Bedingung, bis eine davon erfüllt ist.
    • Wenn also die Sonne scheint, prüft der obige Algorithmus nicht mehr, ob es allenfalls trotzdem auch kalt ist.
    • Ein neues Wenn (kein Sonst, wenn) würde allerdings eine neue Verzweigung starten: ab da prüfen wir wieder die Bedingungen.
  • Der Sonst-Block hat keine Bedingung. Er wird immer dann ausgeführt, wenn keine der Bedingungen erfüllt ist.

EVA (Eingabe ‣ Verarbeitung ‣ Ausgabe)

Die meisten Algorithmen verarbeiten eine Eingabe und produzieren eine Ausgabe.

In einem Struktogramm stellen wir dies folgendermassen dar:

Eingabe:
xxxxxxxxxxxxxxxxxx
x
x
x
x
Ausgabe:

Variablen

Eine Variable ist wie eine Box, die einen Wert enthält, der sich verändern kann.

Variablen (hier: Schafe) kennzeichnen wir in einem Struktogramm deshalb auch mit einer "Box", um sie visuell hervorzuheben:

Ich gehe ins Bett
Schafe = 0
Solange ich wach bin...
Schafe = Schafe + 1
Ausgabe: 💤😴💤

Struktogramme in Aktion

Addition zweier Zahlen

Nimm zwei Zahlen als Eingabe. Addiere diese Zahlen. Gib die Summe als Ausgabe aus.

Zahl dekrementieren

Nimm eine Zahl als Eingabe. Dekrementiere diese Zahl in Einerschritten, solange sie grösser ist als 0. Gib nach jedem Dekrementierungsschritt die aktuelle Zahl aus. Gib am Schluss aus, dass du fertig bist.

Footnotes

  1. Quelle: 👉 rothe.io