Einzelnen Beitrag anzeigen

Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#14

Re: 10 Zahl und Erg. -> + u. - Berechnen

  Alt 28. Dez 2004, 22:06
Hallo,

ich denke mal der didaktische Sinn ist ne Rekursion, also etwas der Art:

Delphi-Quellcode:
var
  zahlen: array[1..10] of Integer; // die vorgegebenen Zahlen
  ergebnis: Integer; // das vorgegebene Ergebnis
  formelerg: String; // Var. für's Ergebnis

function myfunc(pos: Integer; mysum: Integer; formel:string): boolean;
begin
  if pos>10 then
  begin
    if mysum<>ergebnis then
      result:=false
    else
    begin
      formelerg:=formel;
      result:=true
    end;
  end
  else
    result:=myfunc(pos+1, mysum-zahlen[pos], formel+'-'+IntToStr(zahlen[pos])) or
            myfunc(pos+1, mysum+zahlen[pos], formel+'+'+IntToStr(zahlen[pos]));
end;

if myfunc(2, zahlen[1], IntToStr(zahlen[1])) then
  ShowMessage('Formel lautet: '+formelerg)
else
  ShowMessage('Nicht lösbar!');

(Ja, ziemlicher Spagetti-Code... ist auch nicht getestet aber die Idee ist hoffentlich klar.)

Dieser Ansatz erfaßt alle möglichen Lösungen, es wird aber nur die letzte Ausgegeben...
[edit]es werden natürlich nur alle Möglichkeiten erfaßt, wenn booleasche Ausdrücke vollständig ausgewertet werden...[/edit]
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat