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.

 

(7725 Hits)

 

  rubik_cube2     5ermedian     gorilla     balanced     sudoku     imageinspector     bezier     tetris     bignumber     trio     updater     galton_brett     kollision     button_tool     fourier     nsudoku     pingpong     screeny     chunkmanager     tipp_it     summe_n     mastermind     weihnachtsstern     textur_filterung     fpc_depencies     zauber     game_of_life     kartei     induktion     schachprobleme     trackball     lazcomment     delforlaz     balanced2     dcommenter     tippsy3     crc     loop     episodenmanager     bww     pwm     rubik_cube     race_condition     serial     klab     clear_engine     einstein     attributgrammatik     socket     puzzle     proof2e1     multilanguage     partikelengine     picam     parken     fouriersynthese     mandelbrot     4_gewinnt     c_depencies     network_bandwidth_limiter     td     file_transfer     ascii     raetsel     dcf77     network_listener     ntools     newton     lzw     tokenizer     xml     calender     proto     pentago     feder_masse     greenfoot     wii_headtrack     quadtree     exp_func     l_system     simple_font     bitverknupfung     clickomania     gedanken_leser     sortieren     qprogrammer     sfxr     anty_krypt     ctools     network_delay     vokabel     vedische_multiplication     diffusionsfilter     stereoprojektion     fingerspeed     bmp_font     wuerfelzauber     digiman     ccm     sirpinksy     turing_maschine     fir_iir     dithering_filtering