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)

 

  winkonfig     picam     generische_liste     shannon_fano_coding     pingpong     5ermedian     network_bandwidth_limiter     exp_func     sortieren2     bww     steganographie     cleanup     codecounter     basic     fouriersynthese     klab     picking     ae20125     partikelengine     iq_block     attributgrammatik     feder_masse     screensaveblocker     send_get_file     ctools     turing_maschine     farbspectrum     wii_whiteboard     calender     episodenmanager     clear_engine     tg12864b     opengl_graphikengine     serial     minipaint     bmp_font     mauskoordinaten     dxtools     multilanguage     pathfinder     nsudoku     euler     tetris     diffusionsfilter     tbitstream     ym1602c     gorilla     fir_iir     desktop_lock     qprogrammer     rsa     ntools     graphen_algos     crc     proof2e1     3d_puzzle     bezier     projizierte_schatten     ascii     cpu_load     sql     vokabel     schachprobleme     sudoku     openglsphere     4_wins     mandelbrot     8x8x8     torus_chess     dcf77     piemenue     alt_f2     wecker     simple_cad     gebmanager     textfilter     stm     hex     copycommander     button_tool     puzzle     wuerfelzauber     matrix     proto     kwirk     verzeichnung     cubemap     pi     loop     c_libs     ccm     greenfoot     parken     gedanken_leser     balanced2     td     pointer     hilbert     binomial     trackball     hoertest     mastermind     balanced     network_listener     wireworld     rent_it     wuerfel     4_gewinnt     induktion     maw     fakenet     transparenz     passbildcreator     summe_n     io_serializer     library     fpc_depencies     filetools     zauber     lzw     anty_krypt     fourier