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.

 

(7705 Hits)

 

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