Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#10

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 11:17
Na wie gesagt, wie mit dem Auge. Ich persönlich würde es so machen:

Operator suchen, der Vorrang hat und umschließende Ausdrücke auswerten

2+4*5-3 | * wird gefunden, mit Ausdrück davor/danach berechnen
2+20-3 | * / nicht gefunden, also geht es mit + - weiter
22-3
19 | kein operator übrig (Ausnahme Vorzeichen), ergo Ergebnis

Könnte man rekursiv lösen.

*****

bei 2+4*5-3 findest du "*", hast also eine Position im String, dort zerlegst Du den String und hast jetzt 2+4 und 5-3.

Im Ersten ermittelst Du die Zahl von rechts und im zweiten die Zahl von links.

Danach einfach die Zahlen mit dem Operator bearbeiten (den Du Dir irgendwo gemerkt hast).