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>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
86c0ab4f65
commit
70a3cd2d28
@@ -0,0 +1,95 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user