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)

 

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