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)

 

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