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)

 

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