- 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>
96 lines
4.2 KiB
Markdown
96 lines
4.2 KiB
Markdown
---
|
||
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.
|