Hallo,
Zitat von
Xbe:
...hier mal nen Bsp für eine funktionierende Rekursion:
Delphi-Quellcode:
procedureTForm1.umkehren(Sender:TObject);
var i,j:integer;
prodedure umkehr(zeichen:char);
begin
i:=i+1;
zeichen:=wort[i];
if i<length(wort) then umkehr(wort[i]);
stringgrid1.cells[j,0]:=zeichen;
j=j+1;
end;
begin
wort:=edit1.text;
i:=0;
j:=1;
umkehr(wort[i]);
end;
die wird nicht funktionieren
in
j=j+1 da wird der Vergleichsoperator bemängelt werden.
Der Code nutzt zur Rekursion eine nested-Prozedur(verschachtelt), hab die Prozedur mal etwas formatiert, damit es ersichtlich wird:
Delphi-Quellcode:
procedureTForm1.umkehren(Sender:TObject);
var i, j: integer;
//**** nested **************
{}prodedure umkehr(zeichen: char);
{}begin
{} i := i +1;
{} zeichen := wort[i];
{} if i < length(wort) then
{} umkehr(wort[i]);// <--- rekursiver Aufruf
{} stringgrid1.cells[j,0] := zeichen;
{} j := j +1;
{}end;
//**** ENDE nested **************
begin
wort := edit1.text;
i := 0;
j := 1;
umkehr(wort[i]);// <--- Rekursion starten
end;