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     io_adapter     copycommander     button_tool     pentago     rubik_cube     ym1602c     network_listener     hoertest     dcommenter     bigprim     wecker     zufall     codecounter     reihen     pi     delforlaz     fourier     winkonfig     picking     schachprobleme     lzw     sfxr     textfilter     newton     ccm     multilanguage     einstein     steganographie     mandelbrot     projizierte_schatten     c_depencies     5ermedian     openglsphere     2048     simple_cad     numeric_instability     wuerfel     uuart     rent_it     mastermind     wireworld     tg12864b     balanced2     4_gewinnt     crc     shannon_fano_coding     bezier     serial     trackball     fingerspeed     filetools     diffusionsfilter     io_serializer     screeny     8x8x8     digiman     pingpong     klab     wuerfelzauber     tetris     dithering_mask     gedanken_leser     socket     verzeichnung     wii_headtrack     parken     dcf77     iq_block     fakenet     updater     binomial     pointer     picturerotate     stm     clear_engine     weihnachtsstern     clickomania     opengl_spriteengine     puzzle     cleanup     library     imageinspector     stereoprojektion     gc_solver     bww     feder_masse     ae20125     tbitstream     generische_liste     kwirk     gefangenen_dilemma     cubemap     maw     nsudoku     sudoku     farbspectrum     ntools     binaeruhr     piemenue     greenfoot     sql     graphen_algos     l_system     turing_maschine     alt_f2     bmp_font     jazzball     qprogrammer     atmegaboard     sprite_engine     address_db     file_transfer     gorilla     basic     labyrintcreator     c_libs     hough_transformation     calender     vokabel     td     matrix     picam     fir_iir     netzwerkprotokol     3d_puzzle     bignumber     baum     fpc_depencies     quadtree     pwm     race_condition     waage     funkuhr     gebmanager     partikelengine     gpu_info     proto     cpu_load     dxtools     mauskoordinaten     loop     wii_whiteboard     transparenz     episodenmanager     galton_brett     tclockex     laufschrift     sortieren2     torus_chess     balanced     desktop_lock     suchen_dialog     anty_krypt     network_bandwidth_limiter     passbildcreator     boxmuller     4_wins