17.12.2012 Aufrufe

4. Prozedurales Programmieren

4. Prozedurales Programmieren

4. Prozedurales Programmieren

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!