doch, die lösung ist rekursiv.
Delphi-Quellcode:
PROCEDURE try (stufe: Integer; vektor: vektortyp);
VAR wahl,gewicht,wert: Integer;
:
:
:
BEGIN { T }
FOR wahl:=auswahlanfang TO auswahlende DO
BEGIN
vektor[0]:=stufe; { Stelligkeit setzen }
vektor[stufe]:=wahl; { Auswahl Objekt i treffen }
vektor_bewerten;
IF vollstaendig
THEN BEGIN IF neues_optimum THEN loesung_speichern END
ELSE BEGIN IF lebend THEN try(stufe+1,vektor) END //hier wird die routine selbst aufgerufen
END
END;
BEGIN
:
:
try(1,vektor); { rekursive Lösungssuche }
das heisst nichts anderes, als dass sich die routine selbst aufruft. hier noch ein
Link
PS: möcht zwar nix sagen, aber didaktisch ist diese aufgabe verfehlt.