Strukturierung – Probleme zerlegen / Algorithmen zusammensetzen
Zielsetzung
Du hast auf der vorangegangenen Seite das Konzept „Teile und Herrsche“ kennengelernt. Dabei geht es darum, ein kompliziertes Problem in mehrere Teilprobleme zu zerlegen. Sobald diese gelöst sind, kann man die einzelnen Lösungen zusammensetzen. Damit ist dann auch das große Problem gelöst. Wir übertragen dieses Vorgehen jetzt auf das Programmieren von Kara.
Das Problem: Ein Fußballfeld mit Kleeblättern auslegen
Kara will ein Fußballfeld mit Kleeblättern auslegen. Die Eckpfosten stehen schon.
Das Problem in Teilprobleme zerlegen
Das Problem ist recht komplex. In solch einer Situation ist es meist günstig, das Problem in geeignete Teilprobleme zu zerlegen. Eventuell kann man Teilprobleme wiederum in weitere Teilprobleme aufteilen.
Aufgabe 1
Teile das Problem in geeignete Teilprobleme auf. Beschreibe sie möglichst genau (am besten durch Anfangs- und Endzustand). Du musst hier noch nichts programmieren.
Die Teilprobleme lösen
Ist das komplexe Problem zerlegt, so müssen die Teilprobleme gelöst werden. Es ist dabei möglich, dass man hierbei die Teilprobleme noch weiter zerlegt. Oft kommen dabei Unterprogramme zum Einsatz; das ist aber nicht zwingend nötig.
Aufgabe 2
Entwickle für jedes entstandene Teilproblem ein PythonKara-Programm und teste es.
Teillösungen zusammensetzen
Sind alle Teilprobleme gelöst, musst du die Lösungen noch zusammensetzen. Achte darauf, das Programm entsprechend zu kommentieren, damit man versteht, was wo geschieht. Auch Unterprogramme können hier zur Übersichtlichkeit beitragen.
Aufgabe 3
Setze deine Teillösungen zusammen. Teste dein Programm.
Das Wichtigste notieren
Das Vorgehen „Teile und Herrsche“ ist sehr wichtig – in vielen Bereichen der Informatik und auch darüber hinaus. Es ist eine allgemeine Strategie zum Lösen von Problemen.
Aufgabe 4
Im Abschnitt zum Algorithmischen Problemlösen wurde bereits ein mehrschrittiges Vorgehen zum Problemlösen notiert. Ergänze in deiner Mitschrift (eventuell ist das ein Wissensspeicher) zum dritten Schritt (Algorithmus entwickeln und formalisieren) in Farbe „Teile und Herrsche“. Wenn du das sinnvoll findest und dafür genügend Platz hast, erkläre auch kurz, was das bedeutet.