|
Der mathematische Parser (die Funktionen sind als Sammlung von Unterprogrammen in C, FORTRAN und Pascal und als Klassenbibliothek für C++ verfügbar) realisiert die Berechnung von reellen Zahlenwerten, die durch arithmetische Ausdrücke (als Strings) definiert werden. Die Ausdrücke dürfen ZAHLEN, definierte KONSTANTEN (bzw. Variablen), STANDARDFUNKTIONEN, definierte FUNKTIONEN, öffnende und schließende Klammern ( [ { } ] ) enthalten. Diese Elemente können durch die Symbole für die vier Grundrechenarten + - * / und das Symbol für das Potenzieren (^ oder **) verknüpft werden. Leerzeichen werden ignoriert, bei den Buchstaben wird nicht zwischen Groß- und Kleinbuchstaben unterschieden. Die arithmetischen Operationen werden unter Beachtung der Vorrangregeln ausgeführt.
Ein arithmetischer Ausdruck, der dem Parser als String zu übergeben ist, wird einer syntaktischen Kontrolle unterzogen. Wenn er fehlerfrei ist, wird versucht, den Wert des Ausdrucks zu ermitteln, wobei weitere Kontrollen (Verwendung unerlaubter Argumente für die Standardfunktionen, Division durch Null, Überlaufgefahr, ...) durchgeführt werden. Fehler können durch einen zurückgegebenen Indikator (und den Bereich im String, in dem der Fehler entdeckt wurde) identifiziert werden. Beispiele für korrekte arithmetische Ausdrücke: 17 + 5 * 9.3 - 3 * sin ( - 210) PI / 2 + SQRT [ 1 + ( cos ( PI / 4)) ^ ( 3 / 2) ] Ob die Argumente der Winkelfunktionen in Grad oder Radian interpretiert werden sollen, kann über einen Schalter eingestellt (und jederzeit wieder verändert) werden. Die Konstante p (als PI oder pi oder Pi in den Ausdrücken verwendbar) und die Konstante e (Basis der natürlichen Logarithmen, in Ausdrücken als E oder e verwendbar) sind vordefiniert, alle übrigen Konstanten, die verwendet werden, müssen vorher definiert werden. In den nachfolgenden Beispielen wird vorausgesetzt, daß die Konstanten RADIUS, HÖHE, XDL und YDL vorab definiert wurden (und im Parser mit einem Zahlenwert gespeichert sind): 1 / 3 * pi * RADIUS ^ 2 * HÖHE 3 * sinh (xdl / 4 + 2) + 4 * sqrt ( 0.98 * ydl + 2) Beispiele für fehlerhafte arithmetische Ausdrücke: 3 * - 20 (zwei aufeinanderfolgende Operationssymbole) SQRT 27.3 (Argument einer Standardfunktion muß eingeklammert werden) LN ( COS (PI) ) (Logarithmus mit negativem Argument) 5 / SIN (PI) (Division durch Null) SINH (1000) (Operation führt zu Überlauf) |
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||