1. Was sind Struktogramme?
📖 Definition
Ein Struktogramm (auch Nassi-Shneiderman-Diagramm) ist eine grafische Darstellung eines Algorithmus. Es zeigt den Programmablauf als verschachtelte Blöcke und eignet sich besonders für die strukturierte Programmierung.
✅ Vorteile von Struktogrammen:
- Übersichtliche Darstellung von Kontrollstrukturen
- Keine Sprünge möglich → kein "Spaghetti-Code"
- Direkte Umsetzung in Code möglich
- Standardisiert nach DIN 66261
2. Grundelemente
📦 2.1 Anweisung (Sequenz)
Eine einfache Anweisung wird als rechteckiger Block dargestellt:
Java-Code:
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println("Hallo " + name);
🔀 2.2 Verzweigung (If-Else)
Eine Verzweigung teilt den Ablauf in zwei Zweige basierend auf einer Bedingung:
Java-Code:
int alter = sc.nextInt();
if (alter >= 18) {
System.out.println("Volljährig");
} else {
System.out.println("Minderjährig");
}
🔄 2.3 Kopfgesteuerte Schleife (While)
Die Bedingung wird vor dem Schleifenrumpf geprüft. Der seitliche Balken zeigt den Wiederholungsbereich:
i = i + 1
Java-Code:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
📌 Merkmal: Bedingung oben = "Solange ... tue"
🔁 2.4 Fußgesteuerte Schleife (Do-While)
Die Bedingung wird nach dem Schleifenrumpf geprüft. Der Rumpf wird mindestens einmal ausgeführt:
Gib "Eingabe: " + zahl aus
Java-Code:
int zahl;
do {
zahl = sc.nextInt();
System.out.println("Eingabe: " + zahl);
} while (zahl != 0);
System.out.println("Ende");
📌 Merkmal: Bedingung unten = "Tue ... solange"
📋 2.5 Fallunterscheidung (Switch-Case)
Mehrere Alternativen basierend auf einem Wert:
Java-Code:
switch (note) {
case 1:
System.out.println("Sehr gut");
break;
case 2:
System.out.println("Gut");
break;
case 3:
System.out.println("Befriedigend");
break;
default:
System.out.println("Andere");
}
3. Komplexes Beispiel
🎯 Fakultät berechnen
Berechnung von n! = 1 × 2 × 3 × ... × n
i = 1
i = i + 1
Java-Code:
int n = sc.nextInt();
int ergebnis = 1;
if (n < 0) {
System.out.println("Fehler");
} else {
int i = 1;
while (i <= n) {
ergebnis = ergebnis * i;
i++;
}
System.out.println(ergebnis);
}
4. Übersicht der Strukturblöcke
| Element | Erkennung | Java-Entsprechung |
|---|---|---|
| Anweisung | Rechteckiger Block | Einfache Anweisung |
| Verzweigung | Dreieck mit zwei Zweigen | if-else |
| Kopfgesteuerte Schleife | Balken links, Bedingung oben | while, for |
| Fußgesteuerte Schleife | Balken rechts, Bedingung unten | do-while |
| Fallunterscheidung | Mehrere Spalten | switch-case |