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.

 

(7714 Hits)

 

  jazzball     bezier     verzeichnung     fourier     picking     newton     3d_puzzle     network_listener     screeny     sfxr     openglsphere     uuart     updater     codecounter     info     cpu_load     button_tool     rent_it     address_db     dithering_mask     bww     generische_liste     proto     galton_brett     wii_headtrack     tg12864b     pwm     trackball     wecker     dcommenter     labyrintcreator     mauskoordinaten     greenfoot     td     loop     maw     ae20125     funkuhr     klab     pointer     file_transfer     library     binaeruhr     projizierte_schatten     pentago     imageinspector     rubik_cube     wii_whiteboard     mastermind     tclockex     c_depencies     calender     socket     dxtools     wireworld     matrix     iq_block     laufschrift     piemenue     schachprobleme     2048     winkonfig     multilanguage     textfilter     opengl_spriteengine     dcf77     gedanken_leser     waage     baum     alt_f2     farbspectrum     fir_iir     kwirk     binomial     clickomania     clear_engine     parken     hoertest     quadtree     l_system     transparenz     cubemap     zufall     stm     hough_transformation     pingpong     sql     balanced2     8x8x8     gebmanager     ctools     graphen_algos     sprite_engine     picam     race_condition     desktop_lock     pi     io_adapter     basic     4_wins     feder_masse     sudoku     bmp_font     picturerotate     fouriersynthese     crc     filetools     cleanup     kollision     reihen     turing_maschine     qprogrammer     torus_chess     ccm     shannon_fano_coding     diffusionsfilter     serial     vokabel     digiman     netzwerkprotokol     delforlaz     copycommander     stereoprojektion     balanced     simple_cad     network_bandwidth_limiter     wuerfelzauber     tetris     io_serializer     ntools     suchen_dialog     lzw     fpc_depencies     c_libs     anty_krypt     episodenmanager     tbitstream     hex     wuerfel     sortieren2     numeric_instability     bignumber     atmegaboard     gpu_info     fakenet     partikelengine     nsudoku     4_gewinnt     weihnachtsstern     xml     steganographie     ym1602c     passbildcreator     puzzle     mandelbrot     gorilla