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
Sequenz 👣
In einem Struktogramm wird jeder Befehl in einen rechteckigen Kasten geschrieben. Befehle müssen nicht in einer Programmiersprache geschrieben werden, Parameter werden unterstrichen.
from turtle import *
forward(100)
left(90)
forward(50)
Wiederholung 🔁
Eine Wiederholung wird wie folgt dargestellt.
from turtle import *
for i in range(4):
forward(100)
left(90)
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.
Unterprogramm 🏷
Eine Sequenz kann mit einem Namen versehen werden. Anstatt immer die ganze Sequenz aufzuschreiben, genügt es den Namen aufzuschreiben.
from turtle import *
def zick_zack():
left(60)
forward(30)
right(120)
forward(30)
left(60)
forward(100)
zick_zack()
zick_zack()
Um ein Unterprogramm aufzurufen, wird beim Struktogramm der Kasten mit doppelten Seitenstrichen markiert, bei Python werden runde Klammern am Ende des Namens angegeben.
Den Namen für Unterprogramm kann beliebig gewählt werden, sofern er nicht mit einer Zahl beginnt und keine Sonderzeichen enthält. Leerschläge und Bindestriche sind nicht erlaubt - stattdessen werden Unterstriche
_
verwendet: Stattzick zack
wird der Namezick_zack
verwendet.
Parameter ⊕ ⊖
Ein Unterprogramm kann mit Parametern aufgerufen werden.
Parameter werden jeweils unterstrichen, so dass klar ist, welche Werte sich ändern können.
Variablen
Bei Programmen wird zwischen Parametern und Variablen unterschieden. Genau wie Paramter können diese das Ergebnis eines Algorithmus ändern. Sie werden in einem Struktogramm speziell als markiert, damit klar ist, dass eigentlich der in der Variable gespeicherte Wert gemeint ist.
grösse = input('Wie gross bist du [cm]?')
print(f'Ich bin {grösse} cm gross')
Struktogramme