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)

 

  fouriersynthese     fpc_depencies     fourier     cpu_load     opengl_spriteengine     hoertest     atmegaboard     wireworld     bmp_font     funplay2     copycommander     fakenet     induktion     gebmanager     ccm     episodenmanager     ym1602c     klab     partikelengine     ascii     anty_krypt     td     balanced     textfilter     vokabel     crc     wecker     stm     sudoku     passbildcreator     gorilla     puzzle     xml     c_libs     bezier     wuerfel     rollenspiel     pentago     button_tool     cubemap     ae20125     serial     4_wins     imageinspector     3d_puzzle     bignumber     wii_whiteboard     pointer     diffusionsfilter     zauber     network_bandwidth_limiter     loop     reihen     suchen_dialog     picking     wuerfelzauber     tbitstream     boxmuller     piemenue     projizierte_schatten     verzeichnung     picam     newton     zufall     dcommenter     dxtools     desktop_lock     binomial     codeviewer     steganographie     clear_engine     io_serializer     sql     lzw     hough_transformation     turing_maschine     farbspectrum     dithering_filtering     rubik_cube     fir_iir     codecounter     race_condition     iq_block     8x8x8     bww     dcf77     knack     filetools     euler     2048     schachprobleme     proof2e1     tg12864b     feder_masse     qprogrammer     hilbert     mandelbrot     nsudoku     netzwerkprotokol     calender     shannon_fano_coding     sprite_engine     trackball     transparenz     screeny     generische_liste     tetris     balanced2     openglsphere     proto     mastermind     gedanken_leser     numeric_instability     winkonfig     torus_chess     delforlaz     weihnachtsstern     simple_cad     greenfoot     summe_n     sortieren2     gefangenen_dilemma