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)

 

  3d_puzzle     gebmanager     kwirk     imageinspector     textur_filterung     generische_liste     wii_whiteboard     copycommander     verzeichnung     send_get_file     network_listener     bignumber     info     boxmuller     hoertest     turing_maschine     pointer     minipaint     binaeruhr     transparenz     qprogrammer     chunkmanager     mastermind     network_bandwidth_limiter     sortieren2     sfxr     8x8x8     galton_brett     partikelengine     dxtools     iq_block     fingerspeed     einstein     filetools     address_db     clickomania     ccm     updater     pentago     newton     dcf77     fakenet     alt_f2     textfilter     fir_iir     gorilla     gpu_info     picam     bezier     hough_transformation     steganographie     xml     screensaveblocker     numeric_instability     screeny     digiman     ntools     ym1602c     cpu_load     anty_krypt     clear_engine     binomial     2048     zufall     tbitstream     balanced2     projizierte_schatten     funplay2     bmp_font     shannon_fano_coding     ae20125     file_transfer     5ermedian     trio     pingpong     crc     quadtree     calender     balanced     kartei     bww     td     weihnachtsstern     passbildcreator     tg12864b     button_tool     tankplan     fouriersynthese     4_wins     kollision     greenfoot     gc_solver     vokabel     rubik_cube2     trackball     feder_masse     mandelbrot     wuerfel     openglsphere     netzwerkprotokol     wecker     delforlaz     proto     loop     suchen_dialog     klab     fpc_depencies     matrix     bigprim     parken     fourier     io_serializer     heapsim     puzzle     nsudoku     desktop_lock     farbspectrum     gefangenen_dilemma     piemenue     winkonfig     cubemap     uuart     gedanken_leser     sql     picking     dithering_filtering     serial     stm     attributgrammatik     diffusionsfilter     wuerfelzauber