ich habe da immer noch ein rechenfehler drin.. wenn ich 2-2*2-2 gibt er mir 0 aus was ja falsch ist.. weiß einer warum.?
bei der eingabe 3-3*3-3 gibt er mir -3 aus anstatt -9, der vertauscht das zweite minus in plus um oder so ähnlich
der aktuelle quelltext was ich habe:
Delphi-Quellcode:
function TFormTR.BerechneTerm(Formular: string): Double;
var
Seg1,Seg2 : double;
index, ipos : integer;
Op : string;
OpFound : Boolean;
begin
OpFound := False;
for index := 0 to 3 do begin
case index of
0: Op := 'x';
1: Op := '/';
2: Op := '+';
3: Op := '-';
end;
ipos:= pos(Op,Formular);
if ipos > 1 then
begin
OpFound := True;
Seg1 := BerechneTerm(copy(Formular,1,ipos - 1));
Seg2 := BerechneTerm(copy(Formular,ipos + 1,length(Formular)));
case index of
0: Result := Seg1 + Seg2;
1: Result := Seg1 - Seg2;
2: Result := Seg1 * Seg2;
3: Result := Seg1 / Seg2;
end;
break;
end;
end;
if Not OpFound then Result := StrToFloat(Formular);
end;