Die Suche ergab 4 Treffer

von TheBlackSheep70
Fr 7. Dez 2012, 10:30
Forum: Sonstiges
Thema: Implementierung einer rekursiven Funktion
Antworten: 13
Zugriffe: 6245

Re: Implementierung einer rekursiven Funktion

Antrepolit hat geschrieben:

Code: Alles auswählen

 
  if MaxValue = 0 then
  begin
    Result := 'funktioniert';
    Exit;
  end;
 
kann doch auch nicht gehen, da MaxValue immer 10.
Das ist so nicht richtig, denn mit:

Code: Alles auswählen

 
  MaxValue := 0;
  Result := Test;
 
wird MaxValue auf 0 gesetzt, bevor sich die Funktion Test selbst aufruft.
von TheBlackSheep70
Fr 7. Dez 2012, 10:21
Forum: Sonstiges
Thema: Implementierung einer rekursiven Funktion
Antworten: 13
Zugriffe: 6245

Re: Implementierung einer rekursiven Funktion

im ersten Fall war die Message Box leer Bei mir wurde 'funktioniert' in einer MessageBox angezeigt. Muss auch aufgrund des Codings so sein. Alles andere wäre ein Fehler beim Compilieren.
Value als lokale Variable komplett sinnfrei. Hier hast Du recht. Die 4 Zeile hätte der Threaderöffner sparen ...
von TheBlackSheep70
Fr 7. Dez 2012, 09:07
Forum: Sonstiges
Thema: Implementierung einer rekursiven Funktion
Antworten: 13
Zugriffe: 6245

Re: Implementierung einer rekursiven Funktion

Ohne Parameter ergibt das keinen Sinn. Irgendwie sowas:

function Test(value:integer): String;
begin
//writeln(MaxValue);
if MaxValue = 0 then
begin
Result := inttostr(Value);
Exit;
end;
Value := Maxvalue;
MaxValue := 0;
Result := Test(Value);
end;

procedure TForm1.Button1Click(Sender ...
von TheBlackSheep70
Fr 7. Dez 2012, 08:47
Forum: Sonstiges
Thema: Implementierung einer rekursiven Funktion
Antworten: 13
Zugriffe: 6245

Re: Implementierung einer rekursiven Funktion

Wie u-boot schon schrieb: die Funktion ShowMessage(...) wird nur einmal aufgerufen. Damit kann auch nur eine Nachricht angezeigt werden. Die Funktion Test wird zweimal durchlaufen und erst beim zweiten Durchlauf wird das Ergebnis 'funktioniert' geliefert.

Jetzt wäre es hilfreich zu wissen, was ...