4. Prozedurales Programmieren
4. Prozedurales Programmieren
4. Prozedurales Programmieren
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>4.</strong>2.8 Iteration und Rekursion<br />
Rekursive Prozeduren lassen sich in vielen Fällen<br />
in iterative Programme transformieren, d.h. in<br />
Programme, die keine Rekursion, sondern nur<br />
Schleifen enthalten.<br />
Die Lösung mit rekursiven Prozeduren kann eleganter<br />
und einfacher sein. Demgegenüber ist eine iterative<br />
Lösung meist effizienter.<br />
Die Transformation rekursiver Prozeduren in iterative<br />
Programme ist ein klassisches Beispiel für<br />
optimierende Programmtransformationen.<br />
Wir verzichten auf eine allgemeine Behandlung<br />
und betrachten nur ein Beispiel (vgl. Goos, Band 3,<br />
S. 152 ff)<br />
Beispiel:<br />
Berechne das Maximum einer Liste ganzer Zahlen.<br />
Für die leere Liste liefere 0 als Ergebnis.<br />
Wir gehen davon aus, dass es einen Typ IntList mit<br />
Funktionsprozeduren head, tail und isempty gibt sowie:<br />
int max( int m, int n ) {<br />
return (m > n) ? m : n;<br />
}<br />
0<strong>4.</strong>12.08 © A. Poetzsch-Heffter, TU Kaiserslautern<br />
84