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)

 

  io_adapter     gebmanager     balanced     ntools     parken     verzeichnung     openglsphere     nsudoku     network_listener     schachprobleme     proto     generische_liste     codecounter     winkonfig     bezier     wuerfelzauber     gorilla     farbspectrum     newton     numeric_instability     sql     picking     funkuhr     hough_transformation     balanced2     ym1602c     netzwerkprotokol     hex     partikelengine     alt_f2     digiman     klab     mastermind     passbildcreator     piemenue     3d_puzzle     diffusionsfilter     td     transparenz     network_bandwidth_limiter     bmp_font     tg12864b     projizierte_schatten     c_libs     dcommenter     2048     maw     boxmuller     fakenet     suchen_dialog     5ermedian     shannon_fano_coding     tipp_it     feder_masse     clickomania     sortieren2     puzzle     screensaveblocker     4_gewinnt     library     delforlaz     wireworld     4_wins     screeny     iq_block     fpc_depencies     wecker     calender     bignumber     imageinspector     8x8x8     dcf77     torus_chess     fir_iir     desktop_lock     wuerfel     picam     weihnachtsstern     greenfoot     button_tool     hoertest     trackball     binomial     fourier     cpu_load     ccm     pi     steganographie     stm     mandelbrot     qprogrammer     copycommander     episodenmanager     filetools     vokabel     ctools     bww     proof2e1     sudoku     lzw     tbitstream     turing_maschine