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)

 

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