Lade...
 

CX_FORMULA - Operatoren - InstantView

Klasse CX_FORMULA - Operatoren, arithmetische Funktionen

Es gibt folgende Operatoren:

Operator Semantik Priorität Bemerkungen
- Vorzeichenumkehr 10
* Multiplikation 9
/ Division 9
+ Addition 8 auch für Zeichenketten definiert: "abc" + "DE" ergibt "abcDE"
- Subtraktion 8
< Vergleich: kleiner 6 Ergebnis ist ein Objekt der Klasse CX_BOOLEAN
> Vergleich: größer 6 Ergebnis ist ein Objekt der Klasse CX_BOOLEAN
<= Vergleich: kleiner-gleich 6 Ergebnis ist ein Objekt der Klasse CX_BOOLEAN
>= Vergleich: größer-gleich 6 Ergebnis ist ein Objekt der Klasse CX_BOOLEAN
= Vergleich: gleich 6 Ergebnis ist ein Objekt der Klasse CX_BOOLEAN
!= Vergleich: ungleich 6 als Synonyme werden (bei der Eingabe) auch <> und >< akzeptiert
! Negation (logisch) 5 negiert ein Vergleichsergebnis (Klasse CX_BOOLEAN); bitweise Negation für Objekte der Klasse CX_BIT_PATTERN
& logische Konjunktion 4 für Vergleichsergebnisse (CX_BOOLEAN) und Objekte der Klasse CX_BIT_PATTERN
^ exklusiv Oder 4 für Vergleichsergebnisse (CX_BOOLEAN) und Objekte der Klasse CX_BIT_PATTERN
| logische Disjunktion 3 für Vergleichsergebnisse (CX_BOOLEAN) und Objekte der Klasse CX_BIT_PATTERN
:= Wertzuweisung 2
if für bedingte Ausdrücke 1
F(...) Funktionsaufruf 1 Aufruf einer beliebigen Funktion, für F steht der Name der Funktion
else für bedingte Ausdrücke 0

Die Priorität bestimmt die Reihenfolge der Auswertung, solange nicht durch die

Zusammenfassung mit Klammern ( ...) eine davon abweichende Zusammenfassung der Terme vorgegeben wird.

Mehrere Funktionsparameter werden durch Komma getrennt. Einzelne Ausdrücke, die unabhängig voneinander ausgewertet werden sollen, sind durch Semikolon zu trennen (sinnvoll bei Zuweisungen - siehe Beispiele).


Folgende arithmetische Funktionen, die als Argument(e) reelle Zahlen erwarten (d.h. Klasse CX_NUMERIC), können in einer Formel aufgerufen werden:

  • trigonometrische Funktionen
    sin(x) sin x
    cos(x) cos x
    tan(x) tan x
    cot(x) 1 / tan(x)
    arcsin(x) arcsin x
    arccos(x) arccos x
    arctan(x) arctan x
    arc(x) x * 3.1415926535 / 180.0

     

  • hyperbolische Funktionen
    sinh(x) ½ (ex - e-x)
    cosh(x) ½ (ex + e-x)
    tanh(x) (ex - e-x) / (ex + e-x)

     

  • sonstige
    log(x) log10 x
    ln(x) ln x
    exp(x) ex
    sqrt(x) x½
    pow(x, n) xn

     

Für relle (Klasse CX_NUMERIC) und dimensionsbehaftete Zahlen (Klasse CX_VALUE) gibt es folgende Funktionen:

min(a, b) if (a < b) a else b
max(a, b) if (a > b) a else b
floor(x) größte ganze Zahl < x
ceil(x) kleinste ganze Zahl > x
round(x, n) x nach n-ter Stelle runden
truncate(x, n) x nach n-ter Stelle ungerundet "abschneiden"