Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: wie kann man globale Flags in eine Rechenoperation wande

  Alt 13. Jan 2008, 13:54
Wieso definierst Du Dir keinen Record, der den Zahlenwert und den Operator enthält?
Delphi-Quellcode:
type
  TMyRec = record
    Zahl: Integer; //Zahlenwert
    Subtr: Boolean; //Addition(false) oder Subtraktion(true)
  end;

function Berechne(const Arr: array of TMyRec; var Ergebnis: Integer): Boolean;
var i: Integer;
begin
  Result := false;
  Ergebnis := 0;
  if Length(Arr) < 1 then Exit;
  //Operator des 1. Elements wird ignoriert
  Ergebnis := Arr[Low(Arr)].Zahl;
  //die folgenden Elemente werden je nach Wert von Subtr addiert oder subtrahiert
  for i := Succ(Low(Arr)) to High(Arr) do
    begin
      if Arr[i].Subtr then
        Dec(Ergebnis,Arr[i].Zahl)
      else
        Inc(Ergebnis,Arr[i].Zahl);
    end;
  Result := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
var TestArr: array[0..2] of TMyRec;
    Erg: Integer;
begin
  FillChar(TestArr,SizeOf(TestArr),0);
  TestArr[0].Zahl := 15;
  TestArr[1].Zahl := 10;
  TestArr[2].Zahl := 24;
  TestArr[2].Subtr := True;
  Berechne(TestArr,Erg);
  ShowMessage(IntToStr(Erg));
end;
Vielleicht hab ich aber auch nur wieder alles falsch verstanden
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat