Home

Eckdaten des Funktionsparsers

  1. eine nur 30 Kbyte kleine DLL
  2. erkennt Variablen (Bezeichner und Anzahl automatisch), zum Beispiel f(hoehe,breite)=hoehe*breite enthält die beiden Variablen hoehe und breite.
  3. enthält einen Pre-Interpreter und übersetzt die Funktion vor der Ausführung in einen schneller verarbeitbaren Pseudo-Code, dies beschleunigt vor allem iterative Aufrufe des gleichen mathematischen Ausdrucks
  4. darüber hinaus erkennt der Pre-Interpretationsprozess syntaktische Fehler, bevor die eigentliche Berechnung damit konfrontiert wird
  5. Klammern und Variablen können theoretisch unbegrenzt zum Einsatz kommen 
  6. objektorientiert, somit können diverse Objektinstanzen parallel existieren ohne dass sich Datenelemente der Berechnungen ungewollt beeinflussen

Beispielcode:

    using fx_parser;

    string function="f(x)=sin(x^2)"; // wird sinnvollerweise sonst aus einem Textfeld gelesen
    double result;
    compreter cfx=new compreter(true,false,function,"de-DE"); // neues compreter object,degrad = true, Funktionsübergabe, Übersetzung in Zwischencode    
    if (cfx.variablen.Count == 1) cfx.set_var(10,0); // Wert für eventuelle Variable 1 auf 10 setzen
    result = cfx.calculate();  // Berechnen

Wichtige Memberfunktionen / Eigenschaften:

Typ Aufruf Kurzbeschreibung
Eigenschaft   int compreter.variablen.Count; Anzahl der Variablen aus Funktionsdefinition
Eigenschaft   int compreter.comp_error; Pre-interpreter Fehler:
 0: kein Fehler 
 1: empty string
 2: unknown identifyer
 3: bracket error
 4: reserved function identifier
 5: incomplete f(x) = definition
 6: allgemeiner syntaxfehler
Methode   constructor compreter(bool df,bool complex_p,string function,string region_setting);

Objekt erstellen und initialisieren, Funktion übersetzen

  • bool df deg/rad für trigonometrische Funktionen setzen  (true = deg, false = rad))
  • bool complex_p ist true bei Verwendung komplexer Zahlen, ansoansten false
  • string function ist der zu berechnende Ausdruck
  • string region_setting für Internationalisierung
    • "de-DE"
    • "en-US"
Methode   string compreter.get_var_name(int index); index. Variablennamen aus Funktionsdefinition
Methode   void compreter.set_var(double value,int index); Wert der Variablen [index] festlegen
Methode   double compreter.calculate(); Ausdruck berechnen
 
Die neueste Version enthält weitere Methoden und Eigenschaften zur:

- numerischen Bestimmung der ersten Ableitung
- Verwendung Komplexer Zahlen
- erforderlichen analytischen Zerlegung für die Bestimmung von Polstellen



Bei Interesse E-mail:       info@fx-calc.de