Einzelnen Beitrag anzeigen

Benutzerbild von mcmichael
mcmichael

Registriert seit: 5. Jun 2008
Ort: Bremen
79 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

rekursive Programmierung - record als parameter

  Alt 26. Mai 2009, 20:01
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?
  Mit Zitat antworten Zitat