- 1 Section
- 10 Lessons
- unbegrenzt
- Algorithmen & Datenstrukturen10
- 1.1Was ist ein Algorithmus?
- 1.2Struktogramm (Nassi-Shneidermann)
- 1.3Pseudocode schreiben
- 1.4Kontrollstrukturen: Sequenz, Auswahl, Schleife
- 1.5Rekursion verstehen
- 1.6Suchen: linear vs. binär
- 1.7Sortieren: Bubble, Selection, Insertion, Merge
- 1.8O-Notation: Zeitkomplexität
- 1.9Datenstrukturen: Array, Liste, Stack, Queue, Baum, Hash
- 1.10Algorithmik-Aufgaben
Struktogramm (Nassi-Shneidermann)
In Lektion 1 haben wir gesehen, dass es verschiedene Darstellungsformen für Algorithmen gibt. Eine der wichtigsten in der deutschsprachigen Informatik-Ausbildung – und ein Klassiker in IHK-Klausuren – ist das Struktogramm, auch bekannt als Nassi-Shneiderman-Diagramm (kurz NSD). Es wurde 1972 von Isaac Nassi und Ben Shneiderman entwickelt und ist eine grafische Notation für strukturierte Programmierung.
Die Idee: ein Algorithmus wird als Folge von aneinander gestapelten Rechtecken dargestellt. Jedes Rechteck steht für einen Schritt oder eine Struktur. Verzweigungen und Schleifen werden als verschachtelte Boxen visualisiert. Das Ergebnis: man sieht den Aufbau des Algorithmus auf einen Blick, ohne Pfeile, ohne Gewirr – im Gegensatz zu klassischen Flussdiagrammen.
1) Die Grundidee: alles in Rechtecken
Ein Struktogramm besteht aus rechteckigen Bausteinen, die vertikal gestapelt werden. Jeder Baustein steht für eine Kontrollstruktur: eine einfache Anweisung, eine Verzweigung, eine Schleife. Verschachtelung wird durch Boxen innerhalb von Boxen dargestellt. Die Lesereihenfolge ist immer von oben nach unten.
Hier ein einfaches Beispiel: ein Struktogramm, das den Tageslohn berechnet, abhängig davon ob es Wochenende ist:
2) Die Bausteine im Detail
Es gibt eine begrenzte Anzahl von Symbolen, die in Struktogrammen verwendet werden. Sie entsprechen den drei Grundstrukturen strukturierter Programmierung: Sequenz, Auswahl und Schleife. Mehr zu diesen Grundstrukturen in Lektion 4.
for-Schleifen in Java oder Python.3) Verschachtelung – Boxen in Boxen
Die Stärke des Struktogramms kommt zur Geltung, wenn die Logik komplexer wird. Eine Schleife kann eine Verzweigung enthalten, die wiederum eine kleinere Schleife enthält – alles als verschachtelte Rechtecke. Was im Code mit Einrückung dargestellt wird, ist im Struktogramm sichtbare Verschachtelung von Boxen.
Beispiel: eine Liste von Zahlen durchgehen, und für jede positive Zahl quadrieren – ein Schleifenrumpf, der eine if-Verzweigung enthält:
4) Struktogramm vs. Pseudocode
Die beiden wichtigsten Darstellungsformen in der IHK-Welt sind Struktogramm und Pseudocode. Sie beschreiben dasselbe – nur eben grafisch oder text-basiert. Hier dasselbe Beispiel in beiden Notationen:
EINGABE n
summe = 0
FÜR i = 1 BIS n
summe = summe + i
ENDE FÜR
AUSGABE summe
5) Regeln und Konventionen
Es gibt ein paar Konventionen, die Struktogramme richtig aussehen lassen und sie in Klausuren punktebringend machen:
- Alle Boxen haben gleiche Breite: das Diagramm ist innerhalb seines äußeren Rahmens immer rechteckig.
- Lesereihenfolge ist von oben nach unten: kein Sprung zurück nach oben (anders als bei Flussdiagrammen mit GOTO-Pfeilen).
- Verzweigungen haben „ja" und „nein" beschriftet: oder „true" / „false". Die Beschriftung steht direkt über den Zweigen.
- Schleifen sind als Block dargestellt: die Bedingung steht oben (oder unten, je nach Schleifenart), der Rumpf ist eingerückt oder durch einen dickeren Rand abgegrenzt.
- Konvention für die Schleifenrichtung: kopfgesteuert (while) → Bedingung oben. Fußgesteuert (do-while) → Bedingung unten. Zählschleife (for) → Bereich oben.
- Schreibrichtung des Texts: in jedem Rechteck wird der Text als knappe Anweisung formuliert, möglichst sprachneutral. „Lese x" statt „cin >> x".
6) Häufige Fehler in der IHK-Klausur
Beim Erstellen von Struktogrammen in Klausuren gibt es typische Stolperfallen, die Punkte kosten:
- Pfeile zeichnen: Struktogramme haben keine Pfeile. Wer welche zeichnet, hat ein Flussdiagramm gemacht – das ist eine andere Notation.
- Falsche Verzweigungs-Form: die Bedingung steht oben als Trapez oder Rechteck, die zwei Zweige darunter nebeneinander. Nicht hintereinander!
- Boxen nicht gleich breit: alle Boxen einer Ebene müssen die gleiche Breite haben. Sonst sieht's wirr aus und gibt Punktabzug.
- Initialisierung vergessen: Variablen wie
summe = 0vor der Schleife setzen. Sonst zählt man möglicherweise mit undefinierten Werten. - Abbruchbedingung falsch: bei einer while-Schleife muss klar sein, wie die Schleife endet. „Solange wahr" ohne Möglichkeit zum Abbruch verletzt die Terminiertheit.
- Schleifen-Bedingungs-Sinn verdreht: bei einer while-Schleife steht „solange die Bedingung wahr ist" – nicht „bis die Bedingung wahr ist". Klassische Verwechslung.
7) Übungs-Beispiel: einen kompletten Algorithmus zeichnen
Ein vollständigeres Beispiel: ein Algorithmus, der eine Zahl daraufhin prüft, ob sie eine Primzahl ist. Das ist ein typischer IHK-Klausur-Aufgabentyp:
8) Warum Struktogramme in der IHK-Prüfung?
Du fragst dich vielleicht, warum gerade Struktogramme in der deutschen Berufsschule und IHK-Prüfung so eine zentrale Rolle haben. Ein paar Gründe:
- Sprach-unabhängig: niemand muss eine konkrete Programmiersprache kennen, um Struktogramme zu lesen. Das passt zur breit aufgestellten Ausbildung von Fachinformatikern.
- Visuell: der Aufbau eines Algorithmus ist auf einen Blick sichtbar – gut für Anfänger, die noch nicht „in Code denken".
- Strukturierte Programmierung erzwingen: man kann in Struktogrammen kein GOTO machen, keine Spaghetti-Logik. Das ist pädagogisch wertvoll.
- Klare Bewertbarkeit: in Klausuren lässt sich genau prüfen, ob Bausteine richtig verwendet sind. Ein Struktogramm ist eindeutig richtig oder falsch.
In der Praxis außerhalb der Berufsschule kommen Struktogramme aber seltener vor – dort werden meist Pseudocode oder direkt Code verwendet. Die Fähigkeit, Struktogramme zu lesen und zu erstellen, ist trotzdem nützlich: sie zwingt zum Denken in Grundstrukturen und schärft das Algorithmus-Verständnis.
Zusammenfassung
Das Struktogramm (Nassi-Shneiderman-Diagramm, NSD) ist eine grafische Darstellung von Algorithmen mit verschachtelten Rechtecken. Alles wird als Folge von Boxen von oben nach unten dargestellt, ohne Pfeile. Die Bausteine entsprechen den drei Grundstrukturen: Sequenz (Anweisungen untereinander), Auswahl (if/else als zwei Hälften), Schleifen (while/for als Block mit eingerücktem Rumpf). Verschachtelung wird durch Boxen-in-Boxen visualisiert. Vorteile: visuell intuitiv, sprach-unabhängig, erzwingt strukturierte Programmierung. Nachteile: bei komplexer Logik schnell unübersichtlich, viel Platzbedarf, in der Praxis seltener als Pseudocode. Wichtige Regeln: keine Pfeile, alle Boxen gleich breit, Verzweigungen mit „ja/nein" beschriften, Lesereihenfolge immer von oben nach unten. Häufige Klausurfehler: Pfeile zeichnen (das wäre ein Flussdiagramm), falsche Verzweigungs-Form, vergessene Initialisierung, falsche Abbruchbedingung. Wer Struktogramme sicher lesen und schreiben kann, hat das Algorithmen-Verständnis verinnerlicht – und ist gut vorbereitet auf Pseudocode (Lektion 3) und alle weiteren Lektionen dieses Kurses.
