non js-master: Mathe-Term-Parser

Beitrag lesen

Hallo zusammen,

ich möchte für meine Internetseite mathematische Terme per Zufall Übungsblätter zu bestimmten Themen erstellen. Ein Thema wäre Potenzrechnung. Da ich aber nicht nur die Aufgabe, sondern auch die Lösung (noch besser wäre der Weg) anzeigen möchte, stoße ich auf Probleme.

Bis jetzt erzeuge ich per Zufall Terme.
 http://www.ingo-bartling.de/mathe/klasse10/html/terme/intro.html

Der Term ist ein String, der einfach immer länger wird. Die Idee war dabei: aktTerm = aktTerm + neueOperation() + neuerTerm.

Der Term ließe sich zwar noch auswerten, wenn nur "Mal genommen" wird, aber bei Verschachtelungen der Art a^2:(b^3:c^4) stoße ich schon an Probleme. Ich werde also irgendwie den Term anders aufbauen müssen und nur für die Ausgabe in einen String umwandeln. Die Frage ist jetz nur: Wie speichere ich den aktuellen String? Naheliegend wäre eine Baumstruktur. Jetzt weiß ich zwar, dass man Graphen mit Matrizen speichern kann und damit natürlich auch einen Baum, aber bei der konkreten Umsetzung hapert es, denn die Knoten des Baums bestehen aus kleinen Bäumen: (Operation, Term1, Term2).

Kann mir jemand eine Tipp geben? Vielleicht hat jemand so eine Matheparser schon mal geschrieben oder weiß wo es so etwas gibt, oder kennt die Theorie hinter solchen Parsern.

Denn eigentlich kann das doch nicht so schwierig sein, da mathematische Ausdrücke doch sehr strukturiert sind.