Hallo Experten,
ich möchte eine rekursive Funktion programmieren und als Parameter den augenblicklichen Zustand
einer "Keksverteilung" übergeben.
function verteil_kekse(plan:plan_rec):boolean;
plan_rec ist so definiert:
Delphi-Quellcode:
plan_rec=record
dose:Array [0..maxQ] of integer;
keks:Array [1..maxMA,0..maxQ] of byte;
end;
Ich ging davon aus, daß wenn die Funktion sich noch einmal aufruft
Delphi-Quellcode:
i:=0;
repeat
inc(i);
if (i<maxMA) and (score[i,2]>0) then
begin
if i>1 then plan.keks[score[i-1,1],kp]:=0; //vorherigen zurücksetzen
plan.keks[score[i,1],kp]:=1; //keks aktivieren
Form1.ListBox1.items.add('ma '+inttostr(i));
end;
until (i>maxMA) or (score[i,2]=0) or verteil_kekse(plan);
das record auf dem Stack noch einmal neu angelegt wird. Wirds aber nicht.
Es wird immer frisch und leer übergeben.
Dabei stellt sich mir auch eine grundsätzliche Frage:
Wie organisiere ich beim verzweigen durch alle Möglichkeiten die augenblickliche
Verteilung am besten (optimale Geschwindigkeit und Speichernutzung)
Ideen dazu?