Einzelnen Beitrag anzeigen

markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#3

Re: Mathematische Formeln aus Strings kristallisieren

  Alt 15. Sep 2006, 07:24
Ein Ansatz, den ich in meinem Parser verwendet habe:

Betrachte die Formel als einen Baum, dessen Ausgangspunkt das Ergebnis und dessen Endpunkte Konstanten sind.
Du zerlegts den String zuerst nach +/- und beachtest dabei, dass du keine Klammer aufreisst.
Dann suchst du in den evtl entstandene Produkten nach *//.
Schließlich suchst du nach Funktionen, dann nach Klammern.
Wenn eine Funktion oder eine Klammer entdeckt wurde, wird diese auch wieder ganz von vorne durchgeparst.
Schließlich kommst du bei einer Konstante an, die nur noch umgewandelt werden muss.
Sind alle Konstanten eines Nodes vohanden, kann dieser sein Ergebnis berechnen und dieses seinem Parent mitteilen.
Du legst also eine Baumstruktur aus lauter gleichen Parser-Nodes an, die nach den Aufspalten die Teilstrings immer weiter geben und sich die Operationen merken.

mfG

Markus
Markus
  Mit Zitat antworten Zitat