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)

 

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