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.

 

( 423 Hits )

 

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