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.

 

(7712 Hits)

 

  l_system     gorilla     partikelengine     gc_solver     c_libs     greenfoot     loop     kwirk     tipp_it     picturerotate     perlin_noise     c_depencies     dithering_filtering     openglsphere     tbitstream     funkuhr     stereoprojektion     suchen_dialog     imageinspector     wecker     ae20125     klab     turing_maschine     fakenet     proto     tippsy3     pwm     nsudoku     waage     dcf77     screeny     tclockex     ym1602c     knack     parken     induktion     rubik_cube2     vokabel     desktop_lock     laufschrift     raetsel     summe_n     io_serializer     library     cubemap     tankplan     atmegaboard     trio     bezier     rsa     sortieren2     shannon_fano_coding     steganographie     projizierte_schatten     farbspectrum     maw     gefangenen_dilemma     wuerfelzauber     puzzle     dxtools     simple_font     address_db     filetools     mastermind     balanced2     5ermedian     euler     tetris     basic     3d_puzzle     binomial     alt_f2     bww     wireworld     fpc_depencies     diffusionsfilter     cpu_load     ctools     codeviewer     qprogrammer     exp_func     network_bandwidth_limiter     dcommenter     wii_headtrack     generische_liste     td     calender     sirpinksy     piemenue     clickomania     chunkmanager     verzeichnung     matrix     kartei     newton     ntools     codecounter     transparenz     rubik_cube     tg12864b     iq_block     feder_masse     network_listener     funplay2     trackball     send_get_file     zufall     sprite_engine     passbildcreator     opengltruetypefont     fir_iir     serial     sudoku     ascii     sdl_tcp_ip     cleanup     button_tool     4_wins     zauber     socket     minipaint     8x8x8     info     heapsim     stm     lazcomment     numeric_instability     bmp_font     portal     4_gewinnt     winkonfig     ccm     wuerfel     balanced     labyrintcreator     sortieren     hoertest     weihnachtsstern     2048     delforlaz     jazzball     kollision     gpu_info     anty_krypt     clear_engine     sql     mandelbrot     xml     logger     fourier     vedische_multiplication     bignumber     tasker     picam     lzw     textfilter     binaeruhr     pointer     torus_chess     bigprim     race_condition     screensaveblocker     copycommander     gedanken_leser     sfxr     episodenmanager     game_of_life     gebmanager     newton_interpolation     hilbert     file_transfer     picking     project_collector     wii_whiteboard     tokenizer     graphen_algos     crc     proof2e1     simple_cad     reihen     fouriersynthese     netzwerkprotokol     pi