GenMathCalc
Rechner.
Entstanden ist er letzt endes weil ich den
MatheParser aus dem LoopCompiler weiterentwickeln
wollte.
Heraus kam ein Extrem Mächtiges Instrument zum
bewältigen Mathematischer ausdrücke.
Leider ist dank der Fehlenden Generik in Delphi ein
Generischer Rechner nicht gerade Leicht
implementierbar. Für den Delphi Anfänger ist diese
Komponente daher evtl nicht verständlich.
Was Kann die Klasse :
Der Klasse muss eine gültige Tokenliste mit den
bereits vorher geparsten Tokens übergeben werden (
hier bietet sich der Tokenizer an ;) ).
Zusätzlich kann eine Liste mit Variablen übergeben
werden ( gibt es keine Variablen kann die Liste Leer
gelassen werden ).
Die Klasse baut daraus dann einen Baum und gibt die
Wurzel dieses Baumes zurück.
Mit dem Aufruf Calc wird das Ergebnis des Baumes
berechnet und zurückgegeben.
Der Clou an der Sache liegt nun zum einen in der
Extrem sparsamen Erstellung des Rechenbaumes ( der
Parser ruft sich Maximal 1 mal selbst auf, d.h.
Rekursionstiefe = 2 ).
Ein Erstellter Rechenbaum kann immer wieder mit neuer
Variablenbelegung gerechnet werden.
Durch die generische Darstellung der Variablen kann
praktisch jeder Datentyp gerechnet werden ( im Sample
ist Beispielhaft das Rechnen mit Integer, Boolean
und 3 Dimensionalen Vektoren gezeigt ).
Der Programmierer muss lediglich die
Callbackfunctionen für die einzelnen Operatoren
angeben. Unterstützt werden Unäre und Binäre
Operatoren.
So lassen sich mit nur wenigen Zeilen Code die
unterschiedlichsten Mathe Solver erstellen.
(7705 Hits)