Pseudocode-Anleitung für Braille-Struktogramme

Schritt-für-Schritt-Erklärung aller Bausteine mit Beispielen

← Zurück zum Generator

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

Die Bausteine im Überblick

BausteinSchlüsselwortWas macht er?
SequenzSEQUENZFasst mehrere Anweisungen zusammen
Anweisung(kein Schlüsselwort)Ein einzelner Befehl
VerzweigungWENN / SONSTEntscheidung zwischen zwei Wegen
FallunterscheidungFALL / IST / SONSTMehrere Fälle prüfen
Kopfgesteuerte SchleifeSOLANGEWiederhole, solange Bedingung wahr
Fußgesteuerte SchleifeWIEDERHOLE / SOLANGEWiederhole mindestens einmal
EndlosschleifeENDLOSSCHLEIFE / ABBRUCHLäuft bis Abbruchbedingung
UnterprogrammAUFRUFRuft ein anderes Programm auf
RückgabeRUECKGABEGibt einen Wert zurück
ZählschleifeFUER / BIS / SCHRITTLäuft eine feste Anzahl von Durchgängen
Ein-/AusgabeEINGABE / AUSGABEDaten einlesen / ausgeben (Rechteck mit E:/A:-Präfix)
Parallele VerarbeitungPARALLEL / PROZESSMehrere 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

Sequenz-Block „Zahlenfolge“ mit zwei Anweisungen Rechteckiger Block: In der obersten Zeile der Name „SEQUENZ Zahlenfolge“, darunter in zwei weiteren Zeilen die Anweisungen „i = 0“ und „summe = 0“, getrennt durch Querlinien. SEQUENZ Zahlenfolge i = 0 summe = 0

Beispiel

SEQUENZ Zahlenfolge
  i = 0
  summe = 0
ENDE

2. Anweisung — Ein einzelner Befehl

Eine Anweisung ist ein einzelner Befehl, der etwas tut: einen Wert zuweisen, etwas berechnen, etwas ausgeben.

Abbildung

Anweisungs-Block Kleines Rechteck mit der einzelnen Anweisung „summe = a + b“ in der Mitte. summe = a + b

Beispiel

summe = a + b
AUSGABE Hallo Welt
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

WENN-Block mit Bedingung „a > b“ und zwei Zweigen Rechteck mit zweizeiligem Kopf: oben in der ersten Kopfzeile die Bedingung „a > b“, in der zweiten Kopfzeile links das Label „Wahr“ und rechts das Label „Falsch“; zwei Diagonalen laufen von den oberen Ecken zur Mitte der Kopf-Unterkante. Darunter verläuft die Querlinie, und die zwei Spalten werden durch eine vertikale Linie getrennt: links der wahre Zweig mit „A: a“, rechts der falsche Zweig mit „A: b“. a > b Wahr Falsch A: a A: b

Beispiel

WENN a > b
  AUSGABE a ist größer
SONST
  AUSGABE b ist größer oder gleich
ENDE
Wichtig! 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

FALL-Block mit vier Zweigen (1, 2, 3, sonst) Fall-Block: Eine Diagonale verläuft vom linken oberen Eckpunkt zur Kopf-Unterkante an der Grenze des sonst-Zweigs, von dort läuft eine zweite Diagonale (Dachlinie) zum rechten oberen Eckpunkt. Links vor der sonst-Spalte, über der Diagonale, steht die Prüfvariable „monat“, in der unteren Kopfzeile die Werte „1“, „2“, „3“ und rechts „sonst“. Unterhalb der Querlinie liegen vier durch vertikale Linien getrennte Spalten (die oberen Linien enden an der Diagonalen) mit den Ergebnissen „Januar“, „Februar“, „März“ und „andere“. monat 1 2 3 sonst Januar Februar März andere

Beispiel

FALL monat
  IST 1
    AUSGABE Januar
  IST 2
    AUSGABE Februar
  IST 3
    AUSGABE März
  SONST
    AUSGABE anderer Monat
ENDE
Inline-Schreibweise: Für kurze Fälle kannst du alles in einer Zeile schreiben:
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

SOLANGE-Schleife mit Bedingung „i < 10?“ Rechteck: oben die Bedingung „i < 10?“, darunter ein nach links eingerückt gezeichneter Körper mit eigener Umrandung, der die beiden Anweisungen „summe = summe + i“ und „i = i + 1“ enthält. Die Prüfung erfolgt vor jedem Durchlauf. i < 10 ? summe = summe + i i = i + 1

Beispiel

SOLANGE i < 10
  summe = summe + i
  i = i + 1
ENDE

6. WIEDERHOLE / SOLANGE — Fußgesteuerte Schleife

WIEDERHOLE führt den Body mindestens einmal aus, dann prüft SOLANGE die Bedingung.

Abbildung

WIEDERHOLE-Schleife mit Bedingung unten Rechteck: oben der nach links eingerückte Körper mit eigener Umrandung und den Anweisungen „summe = summe + i“ und „i = i + 1“, darunter die Bedingung „i < 10?“. Die Prüfung erfolgt also nach jedem Durchlauf, der Körper läuft mindestens einmal. summe = summe + i i = i + 1 i < 10 ?

Beispiel

WIEDERHOLE
  summe = summe + i
  i = i + 1
SOLANGE i < 10
ENDE
Unterschied zu SOLANGE:
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

ENDLOSSCHLEIFE mit Abbruchbedingung Rechteck: oben links das Endlos-Symbol „∞“, darunter der nach links eingerückte Körper mit eigener Umrandung und den Anweisungen „Daten einlesen“ und „Daten verarbeiten“. Am unteren Rand verläuft eine Pfeilform mit Spitze rechts, die die Abbruchbedingung „daten == null“ enthält — ist sie wahr, wird die Schleife verlassen. ∞ Daten einlesen Daten verarbeiten daten == null

Beispiel

ENDLOSSCHLEIFE
  Daten einlesen
  ABBRUCH daten == null
  Daten verarbeiten
ENDE
Falsch: ABBRUCH in WENN verschachtelt
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.

Richtig: ABBRUCH direkt in der Schleife
ENDLOSSCHLEIFE
  Daten einlesen
  ABBRUCH daten == null   ← RICHTIG!
  Daten verarbeiten
ENDE

8. AUFRUF — Unterprogramm aufrufen

AUFRUF ruft ein anderes Programm oder eine Funktion auf.

Abbildung

AUFRUF-Block (Unterprogramm) Rechteck mit dem Aufruf „berechneSumme(a, b)“ in der Mitte und zusätzlichen vertikalen Begrenzungsstrichen links und rechts im Inneren des Blocks. berechneSumme(a, b)

Beispiel

AUFRUF berechneSumme(a, b)

9. RUECKGABE — Wert zurückgeben

RUECKGABE beendet die Funktion und gibt einen Wert zurück.

Abbildung

RUECKGABE-Block (Pfeilform) Pfeilförmige Blockform mit Pfeilspitzen links und rechts sowie dem Rückgabewert „summe“ in der Mitte. summe

Beispiel

RUECKGABE summe

10. ABBRUCH (außerhalb von Schleifen)

ABBRUCH außerhalb einer ENDLOSSCHLEIFE wird als Pfeilform dargestellt (ähnlich wie RUECKGABE).

Abbildung

ABBRUCH-Block außerhalb einer Schleife (Pfeilform) Pfeilförmige Blockform mit Pfeilspitzen links und rechts sowie dem Text „fehler aufgetreten“ in der Mitte. fehler aufgetreten

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

Abbildung

FUER-Zählschleife von 1 bis 10 Rechteck: oben der Schleifenkopf „i = 1 BIS 10“, darunter der nach links eingerückte Körper mit eigener Umrandung und der Anweisung „summe = summe + i“. Die Schleife läuft eine feste Anzahl von Durchgängen. i = 1 BIS 10 summe = summe + i

Beispiel

FUER i = 1 BIS 10
  summe = summe + i
ENDE
Unterschied zu SOLANGE: 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

EINGABE-Block (Rechteck mit E:-Präfix) Einfaches Rechteck mit dem Text „E: alter“ in der Mitte — das Präfix „E:“ kennzeichnet eine Eingabe. E: alter

Beispiel

EINGABE alter
AUSGABE "Hallo Welt"

13. PARALLEL / PROZESS — Parallele Verarbeitung

PARALLEL fasst mehrere nebeneinander laufende Zweige zusammen. Jeder Zweig wird mit PROZESS eingeleitet.

Abbildung

PARALLEL-Block mit zwei parallelen Zweigen Block mit diagonal abgeschrägten Ecken (Achteck): eine durchgehende Bandlinie oben (Gabel) und eine unten (Zusammenlauf). Dazwischen zwei nebeneinander liegende Zweige, getrennt durch eine vertikale Linie. Im linken Zweig steht oben das Label „A“ und darunter die Eingabe „E: x“; im rechten Zweig steht das Label „B“ und darunter die Ausgabe „A: y“. Beide Zweige laufen nebeneinander. A B E: x A: y

Beispiel

PARALLEL
  PROZESS A
    EINGABE x
  PROZESS B
    AUSGABE y
ENDE
Wichtig: 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


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

Die SVG-Datei kann in Inkscape geöffnet und für den Ausdruck auf Schwellpapier vorbereitet werden.


← Zurück zum Generator