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.

 

( 406 Hits )

 

  bezier     simple_cad     5ermedian     wuerfelzauber     dcf77     feder_masse     rsa     io_serializer     openglsphere     proof2e1     serial     funplay2     textur_filterung     laufschrift     sudoku     hilbert     logger     picturerotate     einstein     file_transfer     kartei     pathfinder     pingpong     clear_engine     verzeichnung     digiman     project_uncollector     wecker     jazzball     screeny     induktion     baum     projizierte_schatten     hex     hoertest     partikelengine     library     clickomania     mandelbrot     sql     picking     sortieren2     bigprim     dithering_filtering     qprogrammer     race_condition     genmathcalc     ccm     opengltruetypefont     farbspectrum     shannon_fano_coding     info     bignumber     gorilla     quadtree     newton_interpolation     4_gewinnt     simple_font     wuerfel     screensaveblocker     ae20125     io_adapter     l_system     bitverknupfung     alt_f2     weihnachtsstern     ascii     uuart     atmegaboard     send_get_file     iq_block     minipaint     balanced2     imageinspector     maw     parken     tg12864b     proto     fingerspeed     transparenz     cubemap     vedische_multiplication     portal     bmp_font     multilanguage     trackball     pointer     stereoprojektion     copycommander     zufall     motionblur     opengl_graphikengine     network_delay     tokenizer     button_tool     ntools     perlin_noise     fir_iir     network_bandwidth_limiter     torus_chess     trio     basic     anty_krypt     codeviewer     kollision     mauskoordinaten     kwirk     gedanken_leser     tbitstream     calc     rollenspiel     balanced     loop     gefangenen_dilemma     fourier