Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#11

Re: Problem mit Mathe-Parser

  Alt 30. Okt 2009, 17:59
@NamenLozer: so schreibt aber kein Mensch und da Vorzeichen die höchste Priorität haben, ist praktisch auch keine Klammer nötig

Zitat von athomas:
aber ich hab jetzt ein problem beim multiplizieren mit negativen zahlen:
Das Problem ist hierbei, daß du in dieser Reihenfolge auswertest
1. *
2. /
3. -
4. +

aber eigentlich ist die korrekte Reihenfolge so
1. Vorzeichen +-
2. Punktrechnung */
3. Strichrechnung +-

oder auch nacheinander
1a. Vorzeichen +
1b. Vorzeichen -
2a. Punktrechnung *
2b. Punktrechnung /
3a. Strichrechnung +
3b. Strichrechnung -
(a und b kann auch vertauscht werden)

schau mal dort
http://www.delphipraxis.net/internal...ghlight=parser
das Problem ist auch, daß du ungeprüft einfach alles miteinander verrechnest
also bei 1--2 wird 1 - "-" gerechnet

die Vorzeichenberechnungen müßtest du also noch vor die Berechnungen von * und / verlegen
und dann z.B. nur bei folgender Bedingung diese Berechnungen ausführen
((i = 0) or istKeineZahl(sl[i-1])) and (sl[i] = '-') and istZahl(sl[i+1])
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat