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.

 

(7714 Hits)

 

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