Home » Tutorials » Programmierkonzepte » Rekursive Algorithmen

Rekursive Algorithmen

Zusammenfassung

Wir haben die Rekursive Programmiertechnik als ein Werkzeug kennen gelernt, mit dem sehr komplexe Aufgabenstellungen durch erstaunlich kurze und einfache Algorithmen programmtechnisch sauber gelöst werden können.
Die in Schritt Rekursive Prozeduren erarbeitete Prozedur bewege – im beiliegenden Beispielprogramm Hanoi nennt sie sich transportiere – stellte uns einen Rekursionsalgorithmus und seine Wirkungsweise in seiner Funktion vor.
Rekursives Denken lässt sich nur schwer „verstehen“, da es eine völlig ungewohnte Denkweise ist.
Nach dem Grundsatz „learning by doing“ habe ich diesem Tutorial ein Anschauungsprogramm „Die Türme von Hanoi“ (Hanoi.exe bzw. als Projektdatei Hanoi.dpr) beigefügt. Das gleichnamige Projekt in delphi-source.de hat mir den letzten Anstoß gegeben, das schon lange in Angriff genommene Projekt in eine endgültige Form zu bringen.
Grundsatz für dieses Vorhaben war, ein recht übersichtliches, klar strukturiertes Programm zu entwickeln. Auch sollten die im Programm verwendeten Daten und andere Angaben möglichst redundanzfrei gebraucht werden; das heißt, wenn Daten im Zuge einer Erweiterung des bisherigen Programms zu ändern sind, dann soll dies NUR AN EINER STELLE notwendig sein. Das allein schließt schon manche Fehlerquellen aus. Außerdem wollte ich durch besondere Maßnahmen mögliche Fehler weitgehendst vermeiden. Und nicht zuletzt wollte ich selbst dem Phänomen Rekursion etwas näher kommen; denn auch für mich gilt: „learning by doing“.
Das Programm Hanoi kannst Du gern erweitern, wie ich es im Sourcecode schon angeboten habe: den manuellen, also von Dir bestimmten Programmablauf habe ich bereits vorgesehen. Alle dafür notwendigen Elemente sind vorhanden.
Sollte Dir dieses Programm Anregungen und Hilfen zum eigenen Programmieren geben, würde ich mich freuen. Solltest Du aber meinen: hier kann ich etwas anders und besser machen, so lass es mich bitte wissen. Meine eMail-Adresse findest Du unten.
Den Sinn eines solchen Tutorials bzw. eines ins Netz gestellten Programms sehe ich auch darin, über manche Programmiererfahrungen zu sprechen (wozu haben wir denn sonst unsere eMails) und so die Erfahrung zu machen: hier ist eine oder einer, die haben sich auch gemüht, dem Laufzeitfehlerteufel ein Schnippchen zu schlagen. Und das ist doch manchmal ganz hilfreich. Und unserem Forum tut es sicher auch gut.