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.

 

(7716 Hits)

 

  verzeichnung     wuerfel     wecker     loop     graphen_algos     calender     farbspectrum     mandelbrot     hoertest     8x8x8     torus_chess     network_listener     mastermind     tbitstream     trio     bezier     xml     dxtools     gedanken_leser     address_db     tipp_it     sudoku     cleanup     info     uuart     simple_cad     stm     send_get_file     wireworld     transparenz     fir_iir     file_transfer     wuerfelzauber     projizierte_schatten     greenfoot     pingpong     generische_liste     stereoprojektion     ntools     clear_engine     picam     tclockex     puzzle     kartei     codecounter     4_wins     klab     vedische_multiplication     gebmanager     5ermedian     mauskoordinaten     euler     anty_krypt     bignumber     fourier     alt_f2     schachprobleme     parken     partikelengine     proto     sql     galton_brett     io_serializer     race_condition     baum     affenpuzzle     basic     ae20125     td     diffusionsfilter     balanced     tankplan     ccm     simpleray     vokabel     kwirk     rsa     desktop_lock     fouriersynthese     weihnachtsstern     c_depencies     dithering_mask     opengl_graphikengine     maw     sirpinksy     l_system     crc     textur_filterung     nsudoku     delforlaz     steganographie     matrix     textfilter     imageinspector     clickomania     passbildcreator     3d_puzzle     suchen_dialog     c_libs     openglsphere     balanced2     iq_block     boxmuller     button_tool     filetools     labyrintcreator     lzw     2048     cubemap     qprogrammer     piemenue     screeny     opengl_spriteengine     shannon_fano_coding     ym1602c     pointer     weihnachtskalender     gefangenen_dilemma     gorilla     binomial     numeric_instability     bww     fpc_depencies     digiman     turing_maschine     bmp_font     winkonfig