CodeProject 21.08.2023, 09:54 Uhr

Komplexer Math-Parser und Evaluator

Der Code besteht aus fünf Klassen, um eine Zeichenkette eines reellen oder komplexen mathematischen Ausdrucks auszuwerten und den Ausdruck auf eine reelle oder komplexe Zahl zu reduzieren. Der mathematische Ausdruck kann Variablen enthalten oder nicht.
(Quelle: CodeProject.com)
In vielen Situationen gibt es eine Zeichenkette, die einen mathematischen Ausdruck enthält, zum Beispiel "1+2*5" oder "(3+i)(3-i)", und es besteht die Notwendigkeit, die Berechnung durchzuführen und das Ergebnis zu ermitteln. Auch bei einer Formel wie "0,5*x+4" gilt es das Ergebnis für mehrere verschiedene Werte von x zu berechnen. In solchen Situationen kann der vom spanischen Entwickler Xavier Junqué i de Fortuny auf CodeProject vorgestellte komplexe Parser helfen.
Die auf dieser Seite vorgestellten Klassen sind ein kleiner, aber verbesserter Teil seines kostenlosen und herunterladbaren CAS-Rechners. Eines der Ziele war, dass diese Klassen nicht auf andere 'externe' Klassen angewiesen sind, wie es im CAS-Rechner der Fall ist.
Die fünf Klassen:
  • Die Klasse 'Global10' enthält globale Werte wie die Anzahl der Dezimalstellen, imaginäre Zeichen ('i' oder 'j') oder CultureInfo.
  • Die Klasse 'Msg10' enthält lediglich ein paar Meldungen zur Behandlung möglicher Fehler.
  • Die Klasse 'Rational' bietet etwas mehr Genauigkeit bei den Operationen.
  • Die Klasse 'Complex' führt die komplexen mathematischen Operationen aus.
  • Die Klasse 'parseComplex' ist dafür zuständig, die Eingabezeichenfolge in Token zu unterteilen und entsprechend die Klassen Complex oder Msg10 aufzurufen. Die Klasse Complex verwendet die Klasse Rational für ihre Real- und Imaginärteile. Die 'Tokenisierung' wird durch ein Regex-Muster vorgenommen.
Weitere Informationen sowie die Möglichkeit den Source-Code zu laden finden Sie auf dieser CodeProject-Seite.


Das könnte Sie auch interessieren