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 taktil fühlbare SVG-Grafiken mit Braille-Schrift (Euro850), die auf einem Braille-Drucker ausgedruckt werden können.
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 |
1. SEQUENZ — Anweisungen gruppieren
Die SEQUENZ fasst mehrere Anweisungen zu einem Block zusammen. Sie ist wie ein Ordner, der mehrere Dateien enthält.
Abbildung
┌─────────────────────────────┐ │ SEQUENZ Zahlenfolge │ ├─────────────────────────────┤ │ i = 0 │ ├─────────────────────────────┤ │ summe = 0 │ └─────────────────────────────┘
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
┌─────────────────────────────┐ │ summe = a + b │ └─────────────────────────────┘
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
┌─────────────────────────────┐
│ a > b ? │
│ /\ │
│ / \ │
│ / \ │
│ / \ │
│ / J \ N │
│ / \ │
│ / \ │
├─────────────────────────────┤
│ Ausgabe: a │ Ausgabe: b
│ ist größer │ ist größer
└─────────────────────────────┘
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
┌─────────────────────────────────────────┐ │ monat \ 1 │ 2 │ 3 │sonst │ ├─────────────────────────────────────────┤ │ Januar │ Februar │ März │ anderer │ │ │ │ │ Monat │ └─────────────────────────────────────────┘
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 Ausgabe: aktiv IST 0 Ausgabe: inaktiv SONST Ausgabe: unbekannt ENDE
5. SOLANGE — Kopfgesteuerte Schleife
SOLANGE wiederholt den Body, solange die Bedingung wahr ist. Die Prüfung erfolgt vor jedem Durchlauf.
Abbildung
┌─────────────────────────────┐ │ i < 10 ? │ ├─────────────────────────────┤ │ ┌─────────────────────┐ │ │ │ summe = summe + i │ │ │ ├─────────────────────┤ │ │ │ i = i + 1 │ │ │ └─────────────────────┘ │ └─────────────────────────────┘
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
┌─────────────────────────────┐ │ ┌─────────────────────┐ │ │ │ summe = summe + i │ │ │ ├─────────────────────┤ │ │ │ i = i + 1 │ │ │ └─────────────────────┘ │ ├─────────────────────────────┤ │ i < 10 ? │ └─────────────────────────────┘
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
┌─────────────────────────────┐ │ ∞ │ ├─────────────────────────────┤ │ ┌─────────────────────┐ │ │ │ Daten einlesen │ │ │ ├─────────────────────┤ │ │ │ Daten verarbeiten │ │ │ └─────────────────────┘ │ ├─────────────────────────────┤ │ → ABBRUCH daten == null │ └─────────────────────────────┘
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
ENDLOSSCHLEIFE Daten einlesen ABBRUCH daten == null ← RICHTIG! Daten verarbeiten ENDE
8. AUFRUF — Unterprogramm aufrufen
AUFRUF ruft ein anderes Programm oder eine Funktion auf.
Abbildung
┌─────────────────────────────┐ │ │ berechneSumme(a, b) │ │ └─────────────────────────────┘
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
┌─────────────────────────────┐ │ ← summe → │ └─────────────────────────────┘
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
┌─────────────────────────────┐ │ ← abbruch → │ └─────────────────────────────┘
Beispiel
ABBRUCH fehler aufgetreten
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!
- 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 Ausgabe: aktiv - Tastatur-Shortcut:
Strg + Enterim Eingabefeld rendert direkt!
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 Braille-Drucker (taktil)
- Kontrollansicht: Arial-Schrift für sehende Nutzer
- PDF-Export: Optional verfügbar
Die SVG-Datei kann in Inkscape geöffnet und für den Braille-Druck vorbereitet werden.