Karol lernt neue Methoden


Modulares Programmieren

Oftmals kommen in einem Programm bestimmte Anweisungen z.B. zur Eingabe, Ausgabe, Speichern, Drucken etc. öfter vor. Dann empfiehlt es sich, schon wegen der besseren Übersichtlichkeit, diese in eigenständige Teilprogramme (Module) auszulagern. Solche Module können dann auch unabhängig vom Programm immer wieder verwendet werden.

Module sind demnach also eigenständige kleine in sich abgeschlossene Programmteile innerhalb eines Hauptprogramms. Man spricht deshalb auch von Unterprogrammen. Jedes Modul besitzt einen Namen, über den es von anderen Programmteilen bzw. vom Hauptprogramm aus aufgerufen werden kann.

Ein Beispiel
Karol soll eine Doppelreihe, bestehend aus jeweils 5 Ziegeln legen (siehe Abbildung). Schreiben und testen Sie das Programm! Was fällt Ihnen auf? DoppelReiheLegen

Ist diese Form des Programmierens effektiv? Sicherlich nicht, denn viele Anweisungen treten mehrfach auf. Die Idee des modularen Programmierens ist es, immer wieder auftretende Folgen von Anweisungen in ein separates Modul oder Unterprogramm auszulagern (z.B. EineReiheLegen) und diese dann mehrfach aufzurufen.

[Seitenanfang]

Karol lernt neue Methoden

Wie organisiert man nun das Auslagern von Programmteilen in eigenständige Module? Im Sinne der objektorientierten Programmierung heißen diese Module Methoden. Karol muss also zusätzlich zu den schon vordefinierten Methoden neue benutzerdefinierte Methoden hinzulernen.

Für die Klasse Roboter können neue Methoden vereinbart werden. Dazu müssen der Bezeichner (Name) der neuen Methode und die Sequenz der aufzurufenden Methoden festgelegt werden.

Methode Bezeichner()
Sequenz
EndeMethode

Auf diese Art und Weise vereinbarte Methoden können dann auch in anderen Methoden aufgerufen werden.

Möchte man nun Karol neue Methoden hinzulernen lassen, muss man folgendermaßen vorgehen:

Anweisung Bezeichner()
Sequenz
*Anweisung

Übung 1

Wir wollen unser Programm zum Legen einer Doppelreihe nun entsprechend modular programmieren. Überlegen Sie sich eine neue Methode EineReiheLegen zum Legen einer Reihe von 5 Ziegeln! Diese neue Methode muss dann im Hauptprogramm zweimal aufgerufen werden. Dazwischen muss sich Karol natürlich noch umdrehen und einen Schritt machen. Sehen Sie die Auswirkung des modularen Aufbaus des Programms? Unser Programmtext ist jetzt viel kürzer geworden.

Beachten Sie, dass der Interpreter ein Programm immer von oben nach unten abarbeitet. Soll ein Unterprogramm im Hauptprogramm aufgerufen und abgearbeitet werden, muss es demzufolge vorher vereinbart worden sein.

Starten Sie das Programm auch einmal im Einzelschrittmodus und verfolgen Sie, wie der Roboter das Programm abarbeitet!

[Seitenanfang]

Aufgaben zum modularen Programmieren

Übung 2: Treppe bauen
  1. Lassen Sie Karol eine Treppe wie in nebenstehender Abbildung Schicht für Schicht bauen!
  2. Vereinbaren Sie je eine neue Methode für jede der vier Stufen und schreiben Sie anschließend das Programm neu!
  3. Vereinbaren Sie eine neue Methode für die gesamte Treppe und schreiben Sie anschließend das Programm neu!
Treppe bauen
Übung 3: Nützliche Methoden

Die beiden folgenden Methoden lassen sich in vielen Situationen nutzbringend verwenden.

  1. Entwerfen Sie eine Methode Umdrehen, bei der sich Karol umdreht. Testen Sie dann die Methode mit Ihrem Programm zum Treppen bauen aus Übung 2!
  2. Entwerfen Sie eine Methode SchrittZurueck, die Karol einen Schritt zurück gehen lässt. Er muss danach wieder in die gleiche Richtung wie am Anfang schauen. Hinweis: Hier können Sie die Methode Umdrehen verwenden.
Übung 4: Was passiert hier?
  1. Überlegen Sie, was die Methode Geheim bewirkt!
  2. Überprüfen Sie Ihre Überlegung, indem Sie Karol die Methode Geheim beibringen und testen!
  3. Was passiert, wenn Sie die Methode Geheim mehrfach hintereinander aufrufen, ohne Karol zwischen den Aufrufen zu bewegen? Probieren Sie es aus!
Methode Geheim

Theoretischer Exkurs: Die Strategie "Teile und Herrsche"

Beim modularen Programmieren geht es auch um die Vereinfachung der Lösung eines komplizierten Problems durch die Aufteilung des komplexen Problems auf kleinere, leichter zu lösende Probleme. Für diese Strategie verwendet man in der Informatik den Namen "Teile und Herrsche".

Aufgabe: Erarbeiten Sie sich mithilfe von Wikipedia (http://de.wikipedia.org/wiki/Teile_und_Herrsche und http://de.wikipedia.org/wiki/Teile_und_herrsche_(Informatik)) das allgemeine Grundprinzip dieser Strategie und ihre konkrete Anwendung in der Informatik!

Übung 5: Die Strategie "Teile und Herrsche" mit Robot Karol

Robot Karol soll einen Ziegelhaufen bestehend aus drei Ziegeln Schritt für Schritt um drei Felder rückwärts ziehen.


Übung 6: Einbinden von Programmbibliotheken

Viele Anweisungen werden in verschiedenen Programmen benötigt. Um sie nicht immer wieder neu schreiben zu müssen, kann man sie in so genannten Bibliotheken speichern. Man schreibt die gewünschten Anweisungen in eine separate Datei, die man wie eine normale Programmdatei speichert. Will man die Anweisungen in einem Programm verwenden, muss man zu Beginn des Programmtextes die Bibliotheksdatei importieren:

Einfügen
Pfad und Dateiname der Bibliothek
*Einfügen

Liegen die benötigten Bibliotheksdateien im gleichen Verzeichnis wie die eigentliche Programmdatei, muss kein Pfad angegeben werden. Dann genügt einfach der Aufruf des Dateinamens der Bibliotheksdatei.

Aufgabe: Schreiben Sie wiederum ein Programm zur Lösung der Aufgabe aus Übung 5. Lagern Sie diesmal jedoch die einzelnen Methoden (HaufenAbbauen, Umdrehen, SchrittZurueck, HaufenAufbauen) in einzelne Bibliotheksdateien aus, die Sie dann im Programm aufrufen!


zuletzt geändert am:
Eine Seite von Mirko Hans