🔄 Algorithmen
Schritt-für-Schritt-Anweisungen für Computer
Was ist ein Algorithmus?
Ein Algorithmus ist eine endliche Folge eindeutiger Anweisungen, um ein Problem zu lösen. Es ist wie ein Kochrezept für Computer.
Eigenschaften eines Algorithmus
- Eindeutigkeit: Jeder Schritt ist klar definiert. Es gibt keine Mehrdeutigkeit.
- Endlichkeit: Der Algorithmus hat ein Ende. Er läuft nicht unendlich.
- Ausführbarkeit: Die Schritte müssen ausführbar sein – der Computer muss sie verstehen.
- Determinismus: Derselbe Input führt immer zum gleichen Output.
Alltagsbeispiele
Ein Rezept: „Nimm 2 Eier, schlage sie in eine Schüssel, rühre um, brenne Öl, gieße die Mischung rein…" Das ist ein Algorithmus!
Wegbeschreibung: „Laufe 100 Meter geradeaus, biege nach links ab, gehe 50 Meter, dein Ziel ist rechts." Das ist auch ein Algorithmus!
💡 Ein Algorithmus ist KEIN Code! Es ist die Logik dahinter – unabhängig von der Programmiersprache.
Struktogramm und Ablaufplan
Um Algorithmen visuell darzustellen, benutzt man Struktogramme oder Ablaufpläne.
Grundelemente
| Symbol |
Name |
Bedeutung |
| ◻️ |
Rechteck |
Anweisung (z.B. „x = 5") |
| ◇ |
Raute |
Entscheidung/Verzweigung (Ja/Nein) |
| ⬭ |
Pfeil |
Flussrichtung |
| ⭕ |
Kreis |
Anfang/Ende |
Beispiel: Ist eine Zahl gerade oder ungerade?
⭕ START
↓
┌──────────────────┐
│ Gib Zahl ein: x │
└────────┬─────────┘
↓
◇ x % 2 == 0? ◇
↙ Ja Nein ↘
│ │
◻ Gerade ◻ Ungerade
│ │
└─────┬────────┘
↓
⭕ ENDE
Pseudocode
Pseudocode ist ein Algorithmus beschrieben in Alltagssprache, nicht in echter Programmiersprache. Es ist einfach zu lesen und zu verstehen.
Beispiel: Gerade oder Ungerade?
ALGORITHMUS CheckGerade
EINGABE: zahl
WENN zahl % 2 gleich 0 DANN
AUSGABE: "Die Zahl ist gerade"
SONST
AUSGABE: "Die Zahl ist ungerade"
ENDE WENN
ENDE
Pseudocode liegt zwischen Alltagssprache und echtem Code. Es hilft Programmierern, ihre Logik zu planen, bevor sie echten Code schreiben.
Sortieralgorithmus – Bubblesort
Bubblesort ist ein einfacher Sortieralgorithmus: Man vergleicht benachbarte Elemente und tauscht sie, wenn die Reihenfolge falsch ist.
Beispiel: Zahlen sortieren
Unsortierte Liste: [5, 2, 8, 1, 9]
| Durchgang |
Liste |
Was passiert |
| Start |
[5, 2, 8, 1, 9] |
Unsortiert |
| 1. Durchgang |
[2, 5, 1, 8, 9] |
Vergleiche 5<→2, 5<→8, 8<→1, 8<→9 |
| 2. Durchgang |
[2, 1, 5, 8, 9] |
Vergleiche 2<→1, 5<→8, 8<→9 |
| 3. Durchgang |
[1, 2, 5, 8, 9] |
Vergleiche 1<→2, 5<→8, 8<→9 |
| Ergebnis |
[1, 2, 5, 8, 9] |
✓ Sortiert! |
Pseudocode Bubblesort:
WIEDERHOLE für jede Position:
Vergleiche benachbarte Elemente
WENN links > rechts DANN tausche sie
ENDE WIEDERHOLE
Die 3 Grundstrukturen
Alle Algorithmen bestehen aus nur 3 Grundstrukturen:
1. Sequenz (Abfolge)
Einfache Anweisungen nacheinander:
x = 5
y = 3
z = x + y
2. Verzweigung (Entscheidung)
Je nach Bedingung unterschiedliche Pfade:
WENN x > 10 DANN
AUSGABE: "x ist groß"
SONST
AUSGABE: "x ist klein"
ENDE WENN
3. Schleife (Wiederholung)
Befehle mehrfach ausführen:
WIEDERHOLE 10 MAL:
AUSGABE: "Hallo"
ENDE WIEDERHOLE
Mit nur diesen 3 Strukturen kann man JEDEN Algorithmus beschreiben!
📝 Übungsaufgaben
❓ Aufgabe 1: Wie nennt man eine endliche Abfolge von Anweisungen zur Problemlösung?
❓ Aufgabe 2: Welches Symbol steht in einem Ablaufplan für eine Entscheidung?
❓ Aufgabe 3: Welche 3 Grundstrukturen hat ein Algorithmus?
❓ Aufgabe 4: Was bedeutet 'Endlichkeit' bei einem Algorithmus?
❓ Aufgabe 5: Wie nennt man einen Algorithmus beschrieben in Alltagssprache?