Files
lernbar/content/handouts/P4-pseudocode-und-struktogramm.md
Florian WildeandClaude Opus 5.5 70a3cd2d28 Inhalte: Wochen 13 bis 16
- Woche 13 Linux-Grundlagen (B3, A6, LF9)
- Woche 14 Betrieb und Ueberwachung (A8, A5, LF11)
- Woche 15 Serviceanfragen bearbeiten (A1, A2, A5, LF6)
- Woche 16 Vorbereitung auf Teil 1 (C3, C4, A10, LF2, LF5)

12 Handouts, 36 Merkkarten, 4 Praxisaufgaben, 3 Checklisten,
2 Lernzielkontrollen und eine Probepruefung Teil 1 (90 Minuten,
100 Punkte, eine durchgehende Fallsituation). Alle Rechenbeispiele
nachgerechnet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 06:33:31 +02:00

96 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: P4
titel: Pseudocode, Struktogramm und Schreibtischtest
block: programmierung
woche: 16
worum: In der Prüfung schreibt man keinen lauffähigen Code, sondern beschreibt den Ablauf so, dass ihn jeder umsetzen kann. Drei Bausteine genügen – Folge, Verzweigung, Schleife.
rahmenplan: [A10, A4]
lernfeld: LF5
merksatz: Erst den Ablauf in Worten, dann in Pseudocode. Jede Schleife braucht ein Ende. Mit einem Schreibtischtest prüfen, bevor man abgibt.
karten:
- frage: Was unterscheidet eine kopfgesteuerte von einer fußgesteuerten Schleife?
antwort: Die kopfgesteuerte Schleife (SOLANGE … ENDE SOLANGE) prüft die Bedingung vor jedem Durchlauf und läuft unter Umständen gar nicht. Die fußgesteuerte (WIEDERHOLE … BIS) prüft erst danach und läuft deshalb mindestens einmal.
- frage: Was ist ein Schreibtischtest?
antwort: Man spielt einen Algorithmus von Hand mit Beispielwerten durch und notiert in einer Tabelle nach jedem Schritt die Werte aller Variablen. So findet man Fehler, ohne den Code auszuführen.
- frage: Was liefert dieser Ablauf für die Liste 72, 91, 85, 60 – zaehler ← 0; FÜR jeden wert IN liste – WENN wert > 80 DANN zaehler ← zaehler + 1?
antwort: 2, denn nur 91 und 85 sind größer als 80.
---
## Das Wesentliche
- **Drei Bausteine** reichen für jeden Ablauf: **Folge** (Schritt für Schritt), **Verzweigung**
(WENN … DANN … SONST), **Schleife** (wiederholen, bis etwas erreicht ist).
- **Pseudocode** ist strukturierte Umgangssprache mit festen Schlüsselwörtern. In der Prüfung
gibt es keine verbindliche Schreibweise; wichtig ist, dass Einrückung und Schlüsselwörter
eindeutig zeigen, was wozu gehört.
- **Zuweisung:** `summe ← 0` – die Variable bekommt einen Wert. Vergleich: `summe = 0`.
- **Schleifen:**
- `FÜR i ← 1 BIS n` – Anzahl der Durchläufe steht vorher fest
- `SOLANGE bedingung` – kopfgesteuert, prüft vorher, läuft eventuell nie
- `WIEDERHOLE … BIS bedingung` – fußgesteuert, läuft mindestens einmal
- **Struktogramm (Nassi-Shneiderman):** Der Ablauf als Kasten; eine Verzweigung teilt den Kasten
mit einem Dreieck in Ja und Nein, eine Schleife umschließt die zu wiederholenden Schritte.
Sprünge gibt es nicht.
- **Programmablaufplan (PAP):** Ablauf mit Symbolen nach DIN 66001 – Oval für Start und Ende,
Rechteck für Tätigkeiten, Raute für Entscheidungen, Parallelogramm für Ein- und Ausgabe.
- **Schreibtischtest:** Beispielwerte wählen, Schritt für Schritt durchgehen und die Werte aller
Variablen in einer Tabelle festhalten. Grenzfälle mitnehmen: leere Liste, ein Element, genau
der Grenzwert.
## Übersicht
Gesucht: Wie viele Server haben mehr als 80 % Plattenbelegung, und wie hoch ist die höchste?
```
anzahlKritisch ← 0
maximum ← belegung[0]
FÜR i ← 0 BIS laenge(belegung) − 1
WENN belegung[i] > 80 DANN
anzahlKritisch ← anzahlKritisch + 1
ENDE WENN
WENN belegung[i] > maximum DANN
maximum ← belegung[i]
ENDE WENN
ENDE FÜR
AUSGABE anzahlKritisch, maximum
```
Schreibtischtest mit `belegung = [72, 91, 85, 60]` – „Wert" ist `belegung[i]`, „Anzahl" ist
`anzahlKritisch`, „Max." ist `maximum`:
| i | Wert | > 80? | Anzahl | Max. |
|---|---|---|---|---|
| – | – | – | 0 | 72 |
| 0 | 72 | nein | 0 | 72 |
| 1 | 91 | ja | 1 | 91 |
| 2 | 85 | ja | 2 | 91 |
| 3 | 60 | nein | 2 | 91 |
Ausgabe: 2 und 91.
## Prüfungsfrage
**Frage:** Ein Prüfprogramm erhält eine Liste von Messwerten. Ein Wert ist in Ordnung, wenn er
zwischen 9,8 und 10,2 liegt (Grenzen eingeschlossen). Schreiben Sie einen Pseudocode, der
ausgibt, wie viele Werte außerhalb der Toleranz liegen, und ob mehr als 5 % der Werte betroffen
sind.
**Antwort:**
```
ausserhalb ← 0
FÜR jeden wert IN messwerte
WENN wert < 9,8 ODER wert > 10,2 DANN
ausserhalb ← ausserhalb + 1
ENDE WENN
ENDE FÜR
AUSGABE ausserhalb
WENN laenge(messwerte) > 0 UND ausserhalb / laenge(messwerte) > 0,05 DANN
AUSGABE "Mehr als 5 % außerhalb der Toleranz"
ENDE WENN
```
Die Bedingung prüft beide Grenzen mit ODER, weil ein Wert entweder zu klein oder zu groß sein
kann. Die Grenzwerte selbst gelten als in Ordnung, deshalb `<` und `>` statt `≤` und `≥`. Die
Prüfung auf eine leere Liste verhindert eine Division durch null.