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)

 

  mauskoordinaten     attributgrammatik     summe_n     tippsy3     simple_cad     newton_interpolation     formelparser     4_gewinnt     trio     crc     bitverknupfung     game_of_life     ccm     stm     wecker     vedische_multiplication     tipp_it     opengl_spriteengine     file_transfer     qprogrammer     wii_headtrack     feder_masse     wuerfelzauber     fpc_depencies     rubik_cube     dithering_filtering     c_libs     picam     tg12864b     c_depencies     baum     stereoprojektion     clickomania     quadtree     updater     bww     fingerspeed     boxmuller     kollision     fouriersynthese     balanced     binaeruhr     delforlaz     bmp_font     tetris     tankplan     pentago     bezier     exp_func     textur_filterung     galton_brett     pointer     einstein     network_bandwidth_limiter     rubik_cube2     5ermedian     gorilla     fakenet     trackball     parken     lazcomment     dcf77     turing_maschine     xml     race_condition     portal     calender     ntools     simple_font     pingpong     tokenizer     lzw     network_delay     partikelengine     basic     imageinspector     socket     dithering_mask     vokabel     filetools     sudoku     kartei     bignumber     balanced2     fourier     ym1602c     affenpuzzle     funkuhr     screeny