Pascal Iteration und Rekursion
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
<h2>Beispiel Iteration und Rekursion</h2>
[[Bild:Cyan_Lol.JPG]]
Beispiele für die Fakultätsberechnung in iterativer und rekursiver Form:
<h3>Iterativ</h3>
<code id="50b4916950405">
function fakultaet_i(zahl:integer):integer;
var i,ergebnis:integer;
begin // Fakultät nur für natürliche Zahlen (ohne Null).
if zahl < 1 then
result:=0
else
begin
ergebnis := 1;
for i:=1 to zahl do
begin
ergebnis := ergebnis * i;
end;
result:=ergebnis;
end;
end;
</code>
<h3>Rekursiv</h3>
<code id="50b49169504b4">
function fakultaet_r(zahl:integer):integer;
begin
// Fakultät nur für natürliche Zahlen (ohen Null).
if zahl < 1 then
result:=0
else
begin
if zahl = 1 then
result:=zahl
else
result:=zahl*fakultaet_r(zahl-1);
end;
end;
</code>
<h3>Ergebnis Testen:</h3>
<run id="50b49169505d1">
procedure ausgabe(zahl:integer);
begin
write('Iterative Berechnung der Fakultät von ');write(zahl);write(' ergibt: ');writeln(fakultaet_i(5));
write('Rekursive Berechnung der Fakultät von ');write(zahl);write(' ergibt: ');writeln(fakultaet_r(5));
end;
// Der Parameter der Funktion "ausgabe" kann geändert werden, um von aderen Zahlen die Fakultät zu bestimmen.
ausgabe(5);
</run>