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)

 

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