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)

 

  bmp_font     fakenet     verzeichnung     uuart     proof2e1     trackball     picking     funplay2     picam     simple_cad     delforlaz     alt_f2     c_libs     digiman     cpu_load     baum     stereoprojektion     perlin_noise     pointer     partikelengine     imageinspector     stm     binomial     td     gorilla     bignumber     atmegaboard     serial     sudoku     fourier     dithering_filtering     mandelbrot     desktop_lock     balanced2     qprogrammer     dcf77     fouriersynthese     tg12864b     codecounter     xml     farbspectrum     transparenz     zauber     trio     picturerotate     8x8x8     clear_engine     vokabel     nsudoku     2048     dcommenter     send_get_file     proto     balanced     weihnachtsstern     bww     fingerspeed     hex     knack     exp_func     gefangenen_dilemma     rubik_cube     greenfoot     io_serializer     maw     ctools     copycommander     steganographie     diffusionsfilter     codeviewer     piemenue     projizierte_schatten     opengl_spriteengine     simpleray     wuerfel     cubemap     screensaveblocker     ae20125     rollenspiel     netzwerkprotokol     openglsphere     attributgrammatik     hough_transformation     button_tool     zufall     iq_block     bezier     ascii     textfilter     pentago     gebmanager     calender     4_wins     schachprobleme     episodenmanager     sortieren2     crc     screeny     dxtools     sql     hilbert     cleanup     parken     suchen_dialog     klab     binaeruhr     wecker     hoertest     generische_liste     ym1602c     torus_chess     network_listener     passbildcreator     gedanken_leser     fpc_depencies     turing_maschine     funkuhr     3d_puzzle     winkonfig     matrix     tbitstream     filetools     weihnachtskalender     tippsy3     euler     wii_whiteboard     feder_masse     shannon_fano_coding     puzzle     network_bandwidth_limiter     ccm     induktion     numeric_instability     loop     mastermind     fir_iir     ntools