Thema: Delphi Taschenrechner Ausgabe

Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#29

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 12:28
Hallo,

versuche mal diesen Code.

Delphi-Quellcode:
function BerechneTerm(Formular: string): Double;
const
  // Array mt den möglichen Operatoren
  opCodes : Array[0..3] of char = ('*','/','+','-');
var
  Seg1,Seg2 : double;
  index : integer;
  opCodeFound : Boolean;


begin
  opCodeFound := false;
  result := 0;
  // durchlaufe das array bis zum Ende
  for index := 0 to high(opCodes) do
    begin
      // opCodes[index] gibt den Operator an der Stelle index aus
      if pos(opCodes[index],Formular) > 1 then
      begin
        opCodeFound := true; // es wurde ein Operator gefunden, Formalar besteht nicht nur aus einer Zahl
        Seg1 := BerechneTerm(copy(Formular,1,pos(opCodes[index],Formular) - 1));
        Seg2 := BerechneTerm(copy(Formular,pos(opCodes[index],Formular) + 1,length(Formular)));
        // Hier wird abgefragt welcher Operator benutzt wurde.
        case opCodes[index] of
          '+': Result := Seg1 + Seg2;
          '-': Result := Seg1 - Seg2;
          '*': Result := Seg1 * Seg2;
          '/': Result := Seg1 / Seg2;
        end;
      end;
  end;
  if not opCodeFound then
    result :=StrToFloat(Formular);
end;
Grüße
Klaus
Klaus