Hallo,
mich würde mal interessieren, ob Ihr in Euren Programmen ehr zur Rekursion oder zur Iteration neigt.
Es können ja schließlich alle Rekursionen durch Interationen ersetzt werden.
- Rekursion
- Vorteile:
- meist kurz (wenig Quellcode)
- oft verständlicher als Iteration
- Nachteile:
- meist langsamer als Iteration in der Ausführung
- es wird von Anfängern gern mal die Abbruchbedingung vergessen
- Iteration
- Vorteile:
- meist schneller als Rekursion in der Ausführung
- Nachteile:
- meist längerer Quellcode
- oft weniger verständlich als Resursion
Für alle die mit dem Begriff Rekursion und Iteration nciht vertraut sind:
Beispiel:
Neue Anwendung -> Form1, ein TButton -> Button1 und ein TMemo -> Memo1
Methode rec ist recursiv (ruf sich also selbst wieder auf)
methode iter ist iterativ (in diesem Fall eine einfache For Schleife)
Delphi-Quellcode:
...
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('i rec(i) iter(i) ');
Memo1.Lines.Add('--- -------- --------');
for i := 0 to 10 do
begin
Memo1.Lines.Add(Format('%2d: %8d %8d', [i, rec(i), iter(i)]));
end;
end;
function TForm1.iter(i: Integer): integer;
var
j: Integer;
begin
Result := 1;
for j := 1 to i do
begin
Result := Result * j;
end;
end;
function TForm1.rec(i: Integer): integer;
begin
if i = 0 then Result := 1
else Result := i * rec(i-1);
end;
...
Das Ergebnis:
Code:
i rec(i) iter(i)
--- -------- --------
0: 1 1
1: 1 1
2: 2 2
3: 6 6
4: 24 24
5: 120 120
6: 720 720
7: 5040 5040
8: 40320 40320
9: 362880 362880
10: 3628800 3628800
Viele Grüße
MaBuSE
ps:Ich wollte schon immer mal als Erster in einem Forum schreiben