Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
Delphi 10.4 Sydney
|
Re: Taschenrechner Ausgabe
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
|
|
|