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)

 

  mauskoordinaten     filetools     picam     wuerfel     copycommander     trio     matrix     diffusionsfilter     picking     steganographie     lzw     gebmanager     laufschrift     2048     sortieren2     winkonfig     episodenmanager     passbildcreator     hilbert     rsa     baum     anty_krypt     generische_liste     5ermedian     turing_maschine     io_serializer     zauber     rubik_cube2     piemenue     hough_transformation     codecounter     pi     ccm     balanced     4_gewinnt     newton     farbspectrum     numeric_instability     transparenz     tankplan     4_wins     crc     graphen_algos     knack     iq_block     textfilter     screensaveblocker     multilanguage     wuerfelzauber     button_tool     3d_puzzle     tclockex     qprogrammer     wii_headtrack     imageinspector     maw     tg12864b     funkuhr     screeny     dxtools     tipp_it     dcf77     dithering_mask     td     gc_solver     sql     suchen_dialog     rollenspiel     simpleray     attributgrammatik     openglsphere     raetsel     vokabel     induktion     mandelbrot     jazzball     clear_engine     heapsim     nsudoku     sudoku     proof2e1     bmp_font     chunkmanager     8x8x8     loop     proto     ym1602c     projizierte_schatten     network_listener     fouriersynthese     tbitstream     wecker     cleanup     weihnachtsstern     puzzle     fakenet     alt_f2     ntools     opengl_graphikengine     io_adapter     ctools     pointer     ascii     hex     kartei     torus_chess     netzwerkprotokol     klab     address_db     exp_func     parken     socket     dcommenter     network_bandwidth_limiter     bezier     desktop_lock     hoertest     pentago     project_collector     digiman     kwirk     c_libs     simple_font     gpu_info     shannon_fano_coding     info     fourier     balanced2     feder_masse     stm     newton_interpolation     fpc_depencies     codeviewer     bignumber     gorilla     updater     calender     schachprobleme     minipaint     picturerotate     xml     greenfoot     fir_iir     euler     basic     serial     kollision     cpu_load     binomial     pingpong     ae20125     summe_n     rubik_cube     gedanken_leser     wireworld     verzeichnung     trackball     mastermind     bww     wii_whiteboard     partikelengine