Lade...
 

CX_FORMULA - Übersicht

Klasse CX_FORMULA - Übersicht

Ein Formel-Objekt enthält einen arithmetischen Ausdruck in der externen, vom Menschen lesbaren Form und gleichzeitig eine interne Darstellung, die eine schnelle Auswertung der Ausdrücke erlaubt.

Die Operanden im Formelausdruck sind:

  • Datenfelder der Objekte (auch dynamische Datenfelder), die durch einen Zugriffsausdruck beschrieben werden:

            nT     owner.credit

    Sie sind die Variablen des Formelausdrucks.
  • Ergebnisse des Aufrufs von Methoden der Objekte

            interne Funktion: sin(x + y)
            externe Funktion: face="Courier">::Foo(x, y)

  • Spezielle Funktionen der Klasse CX_FORMULA: 

    has(debit)

       var(cyberEnterprise)
  • Konstanten

            numerische Konstante:  3    4.26781
            dimensionsbehaftete Konstante:  3.25$     4cm   0.01[g/cm2]
            Zeichenkette:   "abcd"
            implizit bekannte numerische Konstante:  pi   e
            Enumerations-Konstante: 

    rechts  links  beidseitig

Interne Funktionen sind Memberfunktionen eines Objekts, das bei der Berechnung eines in

der Formel enthaltenen Terms entsteht (im Beispiel sin(x

+ y) erzeugt x + y erzeugt ein Objekt, dessen Funktion sin() aufgerufen wird).

Zugriffsausdrücke und externe Funktionen beziehen sich auf bisher noch nicht näher bestimmte Objekte. Erst bei der Auswertung der Formel werden diesen Operanden Datenfelder bzw. Methoden bestimmter Objekte zugeordnet und damit ihr Wert festgelegt. Indem im ClassiX®-System bestimmte Objekte registriert werden (PlugSpace), entsteht ein aktueller Kontext, durch den die Zugriffsausdrücke und externen Funktionen (d.h. die Variablen der

Formel), eine konkrete Bedeutung erhalten.


 

In diesem Beispiel sind x, y, ptr

und e Variable, die vor der Berechnung an Datenfelder der Objekte im PlugSpace gebunden werden. Das gleiche gilt für die Funktion Foo.
Die blauen Rechtecke sind die Objekte im PlugSpace; die Reihenfolge - durch abnehmende Farbintensität dargestellt - bestimmt, welche Variable mit welchem Objekt gebunden wird (das x im letzten Objekt bleibt verdeckt, solange das erste Objekt im PlugSpace verbleibt).
Numerische Konstanten sind 2.5, 0.5 und pi. Für Zeichenketten (Konstante "ABC") sind Vergleichsoperatoren und Verkettung definiert. Die Enumerationskonstante links gehört zu dem für die Variable e im System registrierten Wertevorrat. Funktion sin ist eine Memberfunktion des bei der

Operation x * pi entstehenden Objekts.

Die Operanden einer Formel sind immer Objekte. Die in einer Formel erlaubten

Operationen rufen entsprechende virtuelle Funktionen der Operanden auf, d.h. das Objekt bestimmt die Semantik der Operatoren:

  • binäre Operatoren:
    arithmetisch    +    -     *    /
    Zeichenketten    +
    Vergleich    =    !=     <    >    <=     >=
    logisch    &   |    ^
    Wertzuweisung    :=
  • unäre Operatoren:
    Vorzeichenumkehr    -
    Negation    !
  • mit if ... else ... können bedingte Ausdrücke gebildet werden

Im Formelausdruck können Kommentare in der in C++ üblichen Form untergebracht werden,

d.h. an beliebiger Stelle mit /* ... */ und am Ende mit // ...