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.

 

( 423 Hits )

 

  gpu_info     gedanken_leser     waage     screensaveblocker     gefangenen_dilemma     verzeichnung     address_db     bww     picam     wuerfelzauber     codeviewer     sdl_tcp_ip     lzw     affenpuzzle     gorilla     hoertest     pingpong     pi     feder_masse     rubik_cube     tippsy3     anty_krypt     fourier     wii_headtrack     hilbert     cleanup     cpu_load     copycommander     rollenspiel     project_uncollector     button_tool     pwm     send_get_file     3d_puzzle     mauskoordinaten     induktion     gc_solver     reihen     tbitstream     exp_func     library     kollision     bitverknupfung     multilanguage     tankplan     updater     binaeruhr     knack     parken     qprogrammer     sprite_engine     balanced2     desktop_lock     sfxr     dithering_mask     openglsphere     atmegaboard     c_depencies     fir_iir     ascii     simple_font     l_system     ntools     wuerfel     schachprobleme     tokenizer     codecounter     kwirk     suchen_dialog     passbildcreator     diffusionsfilter     maw     calender     serial     partikelengine     opengltruetypefont     fouriersynthese     rubik_cube2     motionblur     klab     2048     fpc_depencies     rent_it     delforlaz     chunkmanager     tetris     einstein     8x8x8     5ermedian     basic     tasker     clear_engine     gebmanager     formelparser     newton_interpolation     alt_f2     funplay2     turing_maschine     torus_chess     socket     bmp_font     stm     sql     crc     4_wins     shannon_fano_coding     ae20125     race_condition     mandelbrot     c_libs     ccm     kartei     dcf77     filetools     summe_n     clickomania     balanced     dithering_filtering     newton     proof2e1     logger     sudoku     imageinspector     iq_block     uuart     tg12864b