Zitat von
safak67:
Delphi-Quellcode:
case index of
0: Op := 'x';
1: Op := '/';
2: Op := '+';
3: Op := '-';
end;
//...
case index of
0: Result := Seg1 + Seg2;
1: Result := Seg1 - Seg2;
2: Result := Seg1 * Seg2;
3: Result := Seg1 / Seg2;
end;
und da funktioniert irgendwas?
So wird doch bei 'x' + gerechnet und bei '+' *...
Naja abgesehen davon liegt der Rechenfehler daran das das programm, wie Blup schon vor zwei tagen sagte, nicht weiss das von links nach rechts gerechnet wird.
Es gibt recursiv 2*2-2 weiter, was 2 ergibt, und rechnet am Ende dann 2-2.
Dafür hab ich aber momentan auch keine Lösung parat.
Ein Ansatz wäre, wei beim windows Taschenrechner, jedes mal wenn du einen neuen Operator mit niedrigerer Priorität benutzt, das bisherige Ergebnis auszurechnen.