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)

 

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