zur Startseite zum Inhalt zur Navigation

GenMathCalc

 

GenMathCalc ist ein Generischer Mathe Parser / 
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.

 

( 383 Hits )

 

  gedanken_leser     file_transfer     alt_f2     hilbert     binomial     weihnachtsstern     simpleray     clickomania     gefangenen_dilemma     atmegaboard     induktion     balanced     stereoprojektion     wecker     affenpuzzle     hex     labyrintcreator     dithering_mask     pingpong     screeny     summe_n     torus_chess     fakenet     fpc_depencies     send_get_file     formelparser     mandelbrot     tg12864b     screensaveblocker     bignumber     kollision     multilanguage     button_tool     codeviewer     passbildcreator     ym1602c     imageinspector     cubemap     rubik_cube     trackball     tetris     ntools     opengltruetypefont     generische_liste     weihnachtskalender     info     jazzball     picturerotate     filetools     l_system     graphen_algos     knack     cleanup     dcf77     wii_headtrack     opengl_graphikengine     tippsy3     dxtools     fouriersynthese     openglsphere     race_condition     farbspectrum     mauskoordinaten     picking     minipaint     rent_it     uuart     sql     proto     baum     simple_cad     einstein     network_delay     klab     partikelengine     ccm     exp_func     trio     gorilla     zauber     8x8x8     xml     sprite_engine     reihen     textfilter     io_serializer     schachprobleme     cpu_load     heapsim     balanced2     ascii     mastermind     loop     sudoku     pentago     copycommander     numeric_instability     library     feder_masse     ae20125