Schritte des Problemlösens
- Problem analysieren: Verstehe, was gegeben ist (Eingabe), was gesucht ist (Ausgabe) und welche Regeln gelten.
- Algorithmus entwickeln: Schreibe die Lösung als klare, geordnete Schritte auf.
- Programmieren: Übersetze den Algorithmus in ein Programm, zum Beispiel in Python.
- Testen: Lass es mit vielen Eingaben laufen, auch mit Grenzfällen (0, negative Zahlen, sehr große Werte).
- Fehler beheben (Debugging): Finde und korrigiere Fehler und teste danach noch einmal.
Ein Algorithmus braucht: klare Eingabe und Ausgabe, endlich viele Schritte (er muss anhalten), genaue (eindeutige) Schritte, und er muss das richtige Ergebnis liefern.
Flussdiagramme
Ein Flussdiagramm ist ein Bild eines Algorithmus aus genormten Symbolen, die durch Pfeile verbunden sind.
- Oval (Anfang/Ende): Start / Stopp.
- Parallelogramm: Eingabe / Ausgabe.
- Rechteck: Verarbeitung (eine Rechnung oder Zuweisung).
- Raute: Entscheidung; ein Eingang, zwei Ausgänge (Ja/Nein).
- Pfeil: Richtung des Ablaufs.
Flussdiagramme sind leicht zu verstehen, werden bei großen Problemen aber sehr groß.
Pseudocode
Pseudocode schreibt einen Algorithmus in einfachen, sprachähnlichen Anweisungen mit Schlüsselwörtern wie INPUT, COMPUTE, PRINT, IF…ELSE, WHILE. Es ist keine echte Programmiersprache, deshalb muss die genaue Schreibweise nicht stimmen.
INPUT A, B
IF A > B THEN
PRINT A
ELSE
PRINT BAlgorithmen können Sequenz (Schritte nacheinander), Auswahl (IF-Entscheidungen) und Wiederholung (Schleifen) enthalten.
Zerlegung
Zerlegung heißt, ein schwieriges Problem in kleinere, einfachere Teilprobleme zu teilen. Jeder Teil wird gelöst (oft von einer anderen Person oder in einer eigenen Funktion) und danach mit den anderen verbunden.
Beispiel: Ein Buchungssystem für Zugtickets zerfällt in: Züge suchen, freie Plätze prüfen, Ticket buchen, Zahlung annehmen, Ticket drucken.
Vorteile: leichter zu verstehen, die Arbeit lässt sich verteilen, Fehler sind leichter zu finden, Teile lassen sich wiederverwenden.
Das kommt in der Prüfung dran
Typische Aufgaben: ein Flussdiagramm zeichnen oder Pseudocode schreiben für einfache Aufgaben (größere von zwei Zahlen, Summe der ersten n Zahlen, gerade/ungerade, Note aus Punkten), Symbole benennen, die Schritte des Problemlösens aufzählen und Zerlegung an einem Beispiel erklären.
Wichtige Formeln und Definitionen
- Problemlösen: Analysieren → Algorithmus → Code → Test → Debug
- Algorithmus = endliche, genaue, geordnete Schritte mit Eingabe und Ausgabe
- Oval = Start/Ende; Parallelogramm = Ein-/Ausgabe; Rechteck = Verarbeitung; Raute = Entscheidung
- Bausteine: Sequenz, Auswahl, Wiederholung
Gelöste Beispiele
1. Schreibe einen Algorithmus für den Flächeninhalt eines Rechtecks.
1. Start. 2. Länge L und Breite B eingeben. 3. Fläche = L × B. 4. Fläche ausgeben. 5. Stopp.
2. Schreibe Pseudocode, der prüft, ob eine Zahl gerade oder ungerade ist.
INPUT N IF N MOD 2 = 0 THEN PRINT "Gerade" ELSE PRINT "Ungerade"
3. Beschreibe ein Flussdiagramm, das die Summe der Zahlen von 1 bis 10 ausgibt.
Start → Verarbeitung: sum = 0, i = 1 → Entscheidung: i <= 10? → Ja: Verarbeitung sum = sum + i, i = i + 1, Pfeil zurück zur Entscheidung → Nein: Ausgabe sum → Stopp.
4. Zerlege die Aufgabe 'ein Sportfest an der Schule veranstalten'.
Teilprobleme: Wettkämpfe festlegen, Schüler anmelden, Platz und Geräte vorbereiten, Zeitplan machen, Ergebnisse werten und eintragen, Preise vergeben. Jedes Teilproblem kann eine Gruppe übernehmen, danach wird alles zusammengefügt.
5. Verfolge das Flussdiagramm 'größere Zahl' für A = 5, B = 12.
Start → Eingabe A = 5, B = 12 → ist 5 > 12? Nein → B = 12 ausgeben → Stopp.
6. Schreibe Pseudocode für die Note: Punkte ≥ 90 → A, ≥ 75 → B, sonst C.
INPUT M IF M >= 90 THEN PRINT "A" ELSE IF M >= 75 THEN PRINT "B" ELSE PRINT "C"
Häufige Fehler
- Ein Rechteck für eine Entscheidung benutzen. Entscheidungen brauchen immer eine Raute mit Ja/Nein-Ausgängen.
- Einen Algorithmus schreiben, der nie aufhört. Ein Algorithmus muss endlich sein.
- Das Testen mit ungewöhnlichen Eingaben wie 0 oder negativen Zahlen auslassen.
- Ein-/Ausgabe (Parallelogramm) und Verarbeitung (Rechteck) verwechseln.