Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:e2:java-grundlagen:l5-pap

Lektion 5 - Der Hamster entwickelt Algorithmen

Wir haben jetzt schon viele Hamster-Programme geschrieben und mindestens genau so viele Sprachelemente (Befehle, Verzweigungen, Wiederholungen, etc.) kennen gelernt. In dieser Lektion soll es darum gehen, wie man den Überblick behalten kann, wenn ein etwas komplexeres Problem zu lösen ist.

Aufgabe 0: Code Style

Aus gegebenem Anlass (siehe EMail): Lest euch das Fachkonzept: Code Style durch.

Aufgabe 1: Programmentwicklung

Lest euch das Fachkonzept: Programmentwicklung durch. Beantwortet die folgenden Fragen:

  • Aus welche Phasen besteht die Programmentwicklung? Beschreibe die einzelnen Phasen kurz.
  • Wie können die fünf Phasen helfen, bei komplexeren Problemen den Überblick zu behalten?

Aufgabe 2: Kletter-Hamster

Der Hamster soll den Berg erklimmen und seinen Weg markieren, damit er wieder zurückfinden kann. Er hat ausreichend Körner im Maul.

Ausgangssituation:
Zielsituation:

Eure Aufgabe ist es, die Programmentwicklung ein mal komplett zu durchlaufen.

  • Dokumentiert jede Phase genaustens.
  • Entscheidet euch für eines der beiden Prinzipien (Schrittweise Verfeinerung oder Aufteilung in Teilprobleme).
  • Implementiert und testet euren Entwurf!

Aufgabe 3: Hilfsmittel beim Programmentwurf

Die schwierigste ist mit Abstand der Entwurf von Programmen. Aber hierzu gibt es einige Hilfsmittel, wie z.B. das Fachkonzept: Programmablaufplan (PAP).

Beantwortet die folgenden Fragen:

  • Welche Bestandteile hat ein PAP? Wie werden sie verbunden?
  • Was ist ein Unterprogramm?
  • Wie können PAPs helfen, ein schwieriges Problem zu lösen?

Aufgabe 4: PAPs nachvollziehen

Der PAP unten beschreibt einen Algorithmus, der für verschiedene Territorien geeignet ist. Findet heraus, was der Hamster macht, indem ihr den Algorithmus nachvollzieht. Erstellt anschließend den entsprechenden Quellcode im Hamstersimulator.

info:sek-ii:e2:java-grundlagen:l5-pap-a1.png

Der PAP unten beschreibt einen ähnlichen Algorithmus wie oben. Findet auch hier heraus, was der Hamster macht, indem ihr dem Algorithmus nachvollzieht. Passt den Quellcode entsprechend an.

info:sek-ii:e2:java-grundlagen:l5-pap-a2-1.png
info:sek-ii:e2:java-grundlagen:l5-pap-a2-2.png

Aufgabe 5: PAPs erstellen

Sucht euch eine Schwierigkeitsstufe aus und erstellt für jede der Aufgaben einen eigenen PAP.

Leichtes Problem

Aufgabe 1:
Der Hamster ist ein olympischer Sprinter und er soll im folgenden Territorium im Kreis laufen. Er muss sich hier noch nicht auf andere Territorien einstellen!

Aufgabe 2:
Passt euren Algorithmus so an, dass der Hamster auf Territorien von beliebiger Größen im Kreis laufen kann!

Aufgabe 3:
Passt euren Algorithmus so an, dass der Hamster alle zufällig verteilten Körner einsammelt.

Mittleres Problem

Aufgabe 1:
Der Hamster soll im folgenden Territorium die regelmäßige Treppe herauf laufen. Er muss sich hier noch nicht auf andere Territorien einstellen!

Aufgabe 2:
Passt euren Algorithmus so an, dass der Hamster regelmäßige Treppen von beliebiger Größe herauf laufen kann!

Aufgabe 3:
Passt euren Algorithmus so an, dass der Hamster alle Körner einsammelt.

Schwieriges Problem

Aufgabe 1:
Der Hamster soll im folgenden zyklen-freien Labyrinth ohne Verzweigungen das Korn findet. Er muss sich hier noch nicht auf andere Territorien einstellen!

Aufgabe 2:
Passt euren Algorithmus so an, dass der Hamster in einem beliebigen zyklen-freien Labyrinth ohne Verzweigungen das Korn finden kann!

Aufgabe 3:
Passt euren Algorithmus so an, dass der Hamster das Korn findet, diesmal in einem zyklen-freien Labyrinth mit Verzweigungen.

Aufgabe 6: Übungsaufgaben

Auch das Fachkonzept "Programmentwurf" findet ihr im Hamster-eBook in Kapitel 12 auf S. 183.

  1. Bearbeitet die Beispielprogramme ab S. 193:
  2. Bearbeitet anschließend mindestens drei der Übungsaufgaben ab S. 205:

Speichert die Programme und die Territorien sowie eure Notizen auf eurem Stick nach dem Schema Lektion5_Beispiel2 bzw. Lektion5_Uebung5 ab!

info/sek-ii/e2/java-grundlagen/l5-pap.txt · Zuletzt geändert: 2020-08-14 20:06 von christian.weber