Was ist ein Struktogramm?
Ein Struktogramm ist eine grafische Darstellung eines Programms oder Algorithmus. Es zeigt den Ablauf von Anweisungen, Entscheidungen und Schleifen in übersichtlichen Blöcken.
Für blinde Nutzer: Der Generator erzeugt SVG-Grafiken mit Braille-Schrift (Euro850), die auf Schwellpapier ausgedruckt und anschließend mit einem Fuser fühlbar gemacht werden.
Grundprinzip: Einrückung
- Einrückung bestimmt Verschachtelung (wie Python).
- Großbuchstaben für Schlüsselwörter.
- Jeder Block beginnt mit einem Schlüsselwort und endet mit
ENDE.
Die Bausteine im Überblick
| Baustein | Schlüsselwort | Was macht er? |
|---|---|---|
| Sequenz | SEQUENZ | Fasst mehrere Anweisungen zusammen |
| Anweisung | (kein Schlüsselwort) | Ein einzelner Befehl |
| Verzweigung | WENN / SONST | Entscheidung zwischen zwei Wegen |
| Fallunterscheidung | FALL / IST / SONST | Mehrere Fälle prüfen |
| Kopfgesteuerte Schleife | SOLANGE | Wiederhole, solange Bedingung wahr |
| Fußgesteuerte Schleife | WIEDERHOLE / SOLANGE | Wiederhole mindestens einmal |
| Endlosschleife | ENDLOSSCHLEIFE / ABBRUCH | Läuft bis Abbruchbedingung |
| Unterprogramm | AUFRUF | Ruft ein anderes Programm auf |
| Rückgabe | RUECKGABE | Gibt einen Wert zurück |
| Zählschleife | FUER / BIS / SCHRITT | Läuft eine feste Anzahl von Durchgängen |
| Ein-/Ausgabe | EINGABE / AUSGABE | Daten einlesen / ausgeben (Rechteck mit E:/A:-Präfix) |
| Parallele Verarbeitung | PARALLEL / PROZESS | Mehrere Zweige laufen nebeneinander |
1. SEQUENZ — Anweisungen gruppieren
Die SEQUENZ fasst mehrere Anweisungen zu einem Block zusammen. Sie ist wie ein Ordner, der mehrere Dateien enthält.
Abbildung
Beispiel
SEQUENZ Zahlenfolge i = 0 summe = 0 ENDE
SEQUENZstartet den BlockZahlenfolgeist der Name (optional)- Die Anweisungen
i = 0undsumme = 0sind eingerückt ENDEschließt den Block
2. Anweisung — Ein einzelner Befehl
Eine Anweisung ist ein einzelner Befehl, der etwas tut: einen Wert zuweisen, etwas berechnen, etwas ausgeben.
Abbildung
Beispiel
summe = a + b AUSGABE Hallo Welt x = x + 1
- Kein Schlüsselwort nötig!
- Einfach die Anweisung hinschreiben
- Text ist frei wählbar (z.B.
Ausgabe:,berechne,x = x + 1)
3. WENN / SONST — Entscheidung treffen
WENN prüft eine Bedingung. Wenn sie wahr ist, wird der eine Weg gegangen, sonst der andere.
Abbildung
- Bedingung oben, dann die Labels Wahr (links) und Falsch (rechts); zwei Diagonalen laufen von den oberen Ecken in die Zweig-Mitte.
- Ohne
SONST: der wahre Zweig bekommt 75 % der Breite, der (leere) falsche Zweig bleibt als schmale 25-%-Spalte — die Diagonalen konvergieren dann bei 75 %.
Beispiel
WENN a > b AUSGABE a ist größer SONST AUSGABE b ist größer oder gleich ENDE
WENN a > b— die Bedingung steht in der gleichen Zeile- Der wahre Zweig ist eingerückt
SONSTist optionalSONSTmuss gleich weit eingerückt sein wieWENN- Der falsche Zweig ist ebenfalls eingerückt
ENDEschließt den Block
WENN und SONST müssen auf der gleichen Einrückungsebene stehen!
SEQUENZ
WENN x > 0 ← gleiche Einrückung
AUSGABE positiv
SONST ← gleiche Einrückung wie WENN!
AUSGABE nicht positiv
ENDE
ENDE
4. FALL / IST / SONST — Mehrere Fälle prüfen
FALL prüft einen Wert gegen mehrere Möglichkeiten. Wie ein Schalter mit mehreren Positionen.
Abbildung
Beispiel
FALL monat
IST 1
AUSGABE Januar
IST 2
AUSGABE Februar
IST 3
AUSGABE März
SONST
AUSGABE anderer Monat
ENDE
FALL monat— der zu prüfende WertIST 1— erster Fall (Wert 1)- Der Code für diesen Fall ist eingerückt
SONST— fängt alle übrigen Werte ab (optional)ENDEschließt den Block
FALL status IST 1 farbe = grün IST 0 farbe = rot SONST farbe = grau ENDE
5. SOLANGE — Kopfgesteuerte Schleife
SOLANGE wiederholt den Body, solange die Bedingung wahr ist. Die Prüfung erfolgt vor jedem Durchlauf.
Abbildung
Beispiel
SOLANGE i < 10 summe = summe + i i = i + 1 ENDE
SOLANGE i < 10— die Bedingung steht oben- Der Body ist eingerückt
- Die Schleife läuft, solange
i < 10wahr ist - Wenn
i >= 10, wird die Schleife übersprungen
6. WIEDERHOLE / SOLANGE — Fußgesteuerte Schleife
WIEDERHOLE führt den Body mindestens einmal aus, dann prüft SOLANGE die Bedingung.
Abbildung
Beispiel
WIEDERHOLE summe = summe + i i = i + 1 SOLANGE i < 10 ENDE
WIEDERHOLEstartet die Schleife (ohne Bedingung!)- Der Body läuft einmal durch
SOLANGE i < 10prüft am Ende, ob weitergemacht wirdENDEschließt den Block
SOLANGE = Prüfung vor dem Durchlauf (kann 0-mal laufen)WIEDERHOLE = Prüfung nach dem Durchlauf (läuft mindestens 1-mal)
7. ENDLOSSCHLEIFE / ABBRUCH — Endlosschleife mit Ausstieg
ENDLOSSCHLEIFE läuft theoretisch unendlich, bis ABBRUCH die Bedingung erfüllt.
Abbildung
Beispiel
ENDLOSSCHLEIFE Daten einlesen ABBRUCH daten == null Daten verarbeiten ENDE
ENDLOSSCHLEIFEstartet die Schleife (mit ∞-Symbol)- Der Body läuft immer wieder
ABBRUCH daten == null— wenn die Bedingung wahr ist, wird die Schleife verlassen- Wichtig:
ABBRUCHmuss direkt in der Schleife stehen, nicht in einemWENNverschachtelt!
ENDLOSSCHLEIFE
WENN daten == null
ABBRUCH ← FALSCH!
ENDE
Daten verarbeiten
ENDE
Der Generator meldet hier keinen Fehler — er erkennt den verschachtelten ABBRUCH einfach nicht als Abbruchbedingung der Schleife (die Schleife bekommt keinen Abbruch-Pfeil am unteren Rand), sondern zeichnet ihn als eigenen Pfeil-Block innerhalb des WENN-Zweigs.
ENDLOSSCHLEIFE Daten einlesen ABBRUCH daten == null ← RICHTIG! Daten verarbeiten ENDE
8. AUFRUF — Unterprogramm aufrufen
AUFRUF ruft ein anderes Programm oder eine Funktion auf.
Abbildung
Beispiel
AUFRUF berechneSumme(a, b)
AUFRUFgefolgt vom Namen des Unterprogramms- Parameter in Klammern (optional)
- Dargestellt als Block mit Begrenzungsstrichen links und rechts
9. RUECKGABE — Wert zurückgeben
RUECKGABE beendet die Funktion und gibt einen Wert zurück.
Abbildung
Beispiel
RUECKGABE summe
RUECKGABEgefolgt vom Rückgabewert- Dargestellt als Pfeilform mit Spitzen links und rechts
10. ABBRUCH (außerhalb von Schleifen)
ABBRUCH außerhalb einer ENDLOSSCHLEIFE wird als Pfeilform dargestellt (ähnlich wie RUECKGABE).
Abbildung
Beispiel
ABBRUCH fehler aufgetreten
11. FUER — Zählschleife (For-Loop)
FUER wiederholt den Body eine feste Anzahl von Durchgängen. Die Schleife läuft von einem Startwert bis zu einem Endwert.
Syntax
FUER i = Start BIS Ende [SCHRITT Schrittweite] <eingerückter Body> ENDE
FUER i = 1 BIS 10— die Variableiläuft von 1 bis 10 (jeder Wert zählt einmal)SCHRITT 2— optional, zählt aufwärts um 2 (1, 3, 5, …)- Der Body ist eingerückt
ENDEschließt den Block
Abbildung
Beispiel
FUER i = 1 BIS 10 summe = summe + i ENDE
FUER kennt die Anzahl von Durchgängen im Voraus (Zählvariable), SOLANGE prüft eine Bedingung und läuft, solange sie wahr ist.
12. EINGABE / AUSGABE — Daten einlesen und ausgeben
EINGABE und AUSGABE stehen für Ein- und Ausgabe (I/O). Sie werden als einfaches Rechteck dargestellt, mit dem Präfix E: vor dem Eingabetext bzw. A: vor dem Ausgabetext (Nassi-Shneiderman-Diagramme kennen keine eigene I/O-Form wie das Flussdiagramm-Parallelogramm).
Abbildung
Beispiel
EINGABE alter AUSGABE "Hallo Welt"
- Kein Einrückungszwang — sie verhalten sich wie normale Anweisungen
- Der Text nach dem Schlüsselwort ist frei wählbar
- Achtung, der Unterschied:
AUSGABE Hallorendert einen I/O-Block (Rechteck mitA:-Präfix),Ausgabe: Hallo(kleingeschrieben) ist nur eine normale Anweisung
13. PARALLEL / PROZESS — Parallele Verarbeitung
PARALLEL fasst mehrere nebeneinander laufende Zweige zusammen. Jeder Zweig wird mit PROZESS eingeleitet.
Abbildung
- Das außenliegende Rechteck hat diagonal abgeschrägte Ecken (Achteck)
- Oben und unten verlaufen durchgehende Bandlinien (Gabel bzw. Zusammenlauf)
- Zwischen den Zweigen liegen vertikale Trennlinien
- Der Name nach
PROZESSist optional ENDEschließt den Block
Beispiel
PARALLEL
PROZESS A
EINGABE x
PROZESS B
AUSGABE y
ENDE
PROZESS muss zu einem PARALLEL gehören, das weniger eingerückt ist. Ohne PARALLEL wird ein Fehler gemeldet.
Vollständiges Beispiel
Hier ein komplettes Programm, das alle Bausteine verwendet:
SEQUENZ Zahlenfolge
i = 0
summe = 0
ENDLOSSCHLEIFE
i = i + 1
summe = summe + i
ABBRUCH i >= 5
ENDE
WENN summe > 10
status = 1
SONST
status = 0
ENDE
FALL status
IST 1
AUSGABE Summe groß
IST 0
AUSGABE Summe klein
SONST
AUSGABE Fehler
ENDE
AUFRUF druckeErgebnis(summe)
RUECKGABE summe
ENDE
Tipps & Tricks
- Einrückung konsistent halten: Immer 2 oder 4 Leerzeichen pro Ebene — nicht mischen! Im Editor ist die Tab-Taste standardmäßig „gefangen“: Sie rückt eine Ebene ein (4 Leerzeichen), auch bei mehrzeiligen Auswahlen. Shift+Tab rückt die ausgewählten Zeilen eine Ebene aus (ohne Auswahl: die aktuelle Zeile). Mit Escape wechselst du zwischen dem Einrücken und der normalen Tab-Funktion (Fokussprung) um; der Wechsel wird vom Screen-Reader angesagt. Sobald du wieder direkt in den Editor zurückkehrst (z. B. per Klick oder Alt+1), rückt die Tab-Taste automatisch wieder ein – nur die reine Tab-Navigation durch die Seite behält den freien Modus bei.
- Großbuchstaben für Schlüsselwörter:
SEQUENZ,WENN,SONST, etc. — der Parser erkennt nur Großbuchstaben. - ENDE nicht vergessen: Jeder Block muss mit
ENDEgeschlossen werden! - SONST auf gleicher Höhe:
SONSTmuss genauso weit eingerückt sein wie das zugehörigeWENN. - ABBRUCH direkt in der Schleife: Nicht in
WENNverschachteln! - Text frei wählbar: Du kannst schreiben was du willst:
Ausgabe:,berechne,x = x + 1, etc. - Inline-Schreibweise nutzen: Für kurze Fälle:
IST 1 farbe = grün(inline ist immer eine normale Anweisung —AUSGABEerkennt der Parser nur am Zeilenanfang) - Tastatur-Shortcut:
Strg + Enterim Eingabefeld rendert direkt! - Navigation per Tastatur:
Alt + HoderAlt + 2öffnet die Hilfe,Alt + 1springt zum Generator und setzt den Fokus in den Pseudocode-Editor — auch von der Hilfeseite aus. - Export per Tastatur:
Alt + Sexportiert das gerenderte Struktogramm als SVG-Datei,Alt + Pals PDF (A4 oder A3, Braille-Schrift 1:1) — dieselbe Funktion wie die Buttons im Header-Menü. - Fehlerfeld: Bei Fehlern erscheint ein rotes Feld über dem Editor (statt eines Dialogs) mit der Meldung; der Button Zur Zeile springt direkt an den Anfang der Fehlerzeile.
- Offene Blöcke: Unter dem Editor siehst du live, welche Blöcke noch nicht mit
ENDEgeschlossen sind (z. B. „Offene Blöcke: SEQUENZ (Zeile 1), WENN (Zeile 2)") — so findest du fehlendeENDE-Zeilen schon beim Tippen. - Vorlagen: Die Buttons Beispiel laden (das Zahlenfolge-Beispiel) und Editor leeren füllen den Editor mit Startinhalten.
- Datei öffnen/speichern: Im Header-Menü: Pseudocode öffnen… lädt eine bestehende
.txt-Datei in den Editor (max. 200 KB), Pseudocode speichern speichert den Inhalt alspseudocode.txt— alles lokal im Browser. - Zoom: Die +/−-Buttons an den Vorschauen vergrößern und verkleinern die Braille-Vorschau (25–200 %) und die Kontrollansicht (50–200 %). Die Exporte (SVG/PDF) bleiben dabei immer 1:1.
Häufige Fehler
Fehler 1: Fehlende Einrückung
SEQUENZ WENN x > 0 ← FALSCH! Nicht eingerückt! AUSGABE positiv ← FALSCH! ENDE
Fehler 2: SONST falsch eingerückt
SEQUENZ
WENN x > 0
AUSGABE positiv
SONST ← FALSCH! Zu weit eingerückt!
AUSGABE negativ
ENDE
ENDE
Fehler 3: ABBRUCH in WENN verschachtelt
ENDLOSSCHLEIFE
WENN fertig
ABBRUCH ← FALSCH!
ENDE
ENDE
Fehler 4: ENDE vergessen
SEQUENZ
a = 1
WENN a > 0
AUSGABE positiv
ENDE
← FALSCH! ENDE für SEQUENZ fehlt!
Export & Druck
- SVG-Export: Vektorgrafik für den Ausdruck auf Schwellpapier (taktil)
- Kontrollansicht: Arial-Schrift für sehende Nutzer
- PDF-Export (A4/A3): wird direkt im Browser erzeugt (offline, ohne externe Bibliothek)
- Beispiele-PDF (Braille + Schwarzschrift): alle 14 Beispiele dieser Anleitung als PDF-Datei — je 2 Seiten (Braille und Schwarzschrift), A4. PDF herunterladen (ca. 2,3 MB)
Die SVG-Datei kann in Inkscape geöffnet und für den Ausdruck auf Schwellpapier vorbereitet werden.