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)

 

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