| |
|
|
Michael Wodrich | Operatoren
Operatoren kennt Profan seulement depuis qui Version 6. auparavant wurden mathématique et Verknüpfungs-Operationen sur Funktionen erledigt. qui Funktionen existieren aus Kompatibilitätsgründen weiterhin, peut mais pour zukünfige Versionen de XProfan pas garantiert volonté.
il y a folgende Operatoren:
<b>Zuweisung:</b>
Var = Ausdruck | Wertzuweisung | |
chez qui Wertzuweisung sommes alle Variablentypen possible. qui Ausdruck sollte vom gleichen Typ son comment qui Variable. quelques Werte volonté automatisch konvertiert (Int <--> LongInt, Int+LongInt -> Float). Pour (String <--> Int) sollte on toujours Konvertierungsfunktionen benutzen ( @LINKF:[Int], @LINKF:[Str]$ ).
<b>String:</b>
A$ + B$ | Cordes verknüpfen; vieux: @Ajouter$(A$,B$) | A$ = B$ | comparaison: Gleichheit; vieux: @Equ$(A$,B$) | A$ <> B$ | comparaison: Ungleichheit; vieux: @NEq$(A$,B$) | |
qui Datentyp ist ici toujours vom Typ String.
<b>Mathematisch:</b>
A% + B% | Addition; vieux: @Ajouter(A%,B%) | A% - B% | Subtraktion; vieux: @Sous(A%,B%) | A% * B% | Multiplikation; vieux: @Mul(A%,B%) | A% / B% | Division; vieux: @Div(A%,B%) | A% B% | ganzzahlige Division: 5 2 = 2 (reste fällt weg); vieux: @Div&(A%,B%) | A% MOD B% | Modulo/Teilungsrest: 5 mod 2 = 1 (qui reste qui Division); vieux: @Mod(A%,B%) | A% ^ B% | Potenz; vieux: @Pow(A%,B%) | |
qui Datentyp Integer (<b>%</b>) steht ici stellvertretend pour: <b>%</b> (Integer), <b>&</b> (LongInt), <b>!</b> (Float).
<b>Relational:</b>
A% < B% | comparaison: kleiner comme (less than); vieux: @LT(A%,B%) | A$ < B$ | comparaison: kleiner comme (less than); vieux: @LT$(A$,B$) | A% <= B% | comparaison: kleiner ou bien juste (less or equal); (donnais es pas comme Funktion) | A$ <= B$ | comparaison: kleiner ou bien juste (less or equal); (donnais es pas comme Funktion) | A% > B% | comparaison: grösser comme (greater than); vieux: @GT(A%,B%) | A$ > B$ | comparaison: grösser comme (greater than); vieux: @GT$(A$,B$) | A% >= B% | comparaison: grösser ou bien juste (greater or equal); (donnais es pas comme Funktion) | A$ >= B$ | comparaison: grösser ou bien juste (greater or equal); (donnais es pas comme Funktion) | A% = B% | comparaison: Gleichheit; vieux: @Equ(A%,B%) | A% <> B% | comparaison: Ungleichheit; vieux: @NEq(A%,B%) | |
qui Datentyp Integer (<b>%</b>) steht ici stellvertretend pour: <b>%</b> (Integer), <b>&</b> (LongInt), <b>!</b> (Float).
<b>Logisch:</b>
A% AND B% | logisches UND | A% OU B% | logisches ODER | NOT(A%) | logisches NICHT (existiert <b>nur</b> comme Funktion) | |
qui Datentyp Integer (<b>%</b>) steht ici stellvertretend pour: <b>%</b> (Integer), <b>&</b> (LongInt).
<b>Binär:</b>
A% & B% | binäres UND | A% | B% | binäres ODER | A% << B% | Bits à gauche schieben (dans Delphi: SHL) | A% >> B% | Bits à droite schieben (dans Delphi: SHR) | |
qui Datentyp Integer (<b>%</b>) steht ici stellvertretend pour: <b>%</b> (Integer), <b>&</b> (LongInt).
si cela - aussi paramètre trennt (comment etwa chez LINKP:[WINDOW] et den vielen <a href="https://XProfan.com/index.mx?online-dokumentation-rubriken/rub8">Grafik-Befehlen</a>), ist es notwendig Subtraktionen einzuklammern, etwa: Fenêtre a%,(b% - 5) - (c% - 6),500
Anderenfalls peux qui Parser durcheinander geraten et il y a Fehlermeldungen.
qui Operatoren sommes dans folgende Hierarchiestufen eingeteilt:
1. | ^ | | | | | | | | 2. | MOD | AND | * | / | | & | >> | << | 3. | OU | + | - | | | | | | | 4. | = | > | < | | | | | | 5. | <> | >= | <= | | | | | | |
Hinweis: qui Hierarchie entspricht dans etwa qui sous PASCAL et weicht de qui BASIC-Hierarchie ab. qui Vergleichsoperatoren (Stufe 4 + 5) sommes dans BASIC höher eingestuft.
Aus BASIC: Si A% > 6 AND A% <= 20 THEN <...> Fin Si
wird dans XProfan: Si (A% > 6) AND (A% <= 20) <...> EndIf
dans PASCAL serait on écrivons: Si (A > 6) AND (A <= 20) THEN BEGIN <...>; End;
Klammerung ist comment üblich erlaubt, etwa: C% = 5 * (A% + B%) Ergebnis! = 248 * d% / (e% + f%)
Klammern peut beliebig, d.h. jusqu'à zum Stack-Überlauf, verschachtelt volonté.
<b>Wichtig:</b> Achten vous sur qui Klammersetzung. Version 7.5 stösst sur faute, qui Version 6.5 encore übersehen hat! qui Fehlermeldung "Zu wenig Parameter" dans einer la ligne avec verschachtelten Funktionen/Klammern deutet häufig sur une faute dans qui Klammersetzung hin!
<b>Achtung:</b> Logisch bedeutet, dass cela Ergebnis véritable (1) ou bien faux (0) ist, chez binären Funktionen volonté qui Werte bitweise verknüpft:
logisch: 2 OU 4 ergibt 1, weil mindestens einer qui Werte <> 0 (= véritable) ist
binär: @OU(2,4) bzw. 2 | 4 ergibt 6: %0010 OU %0100 = %0110
Pour schnelle Berechnungen avec Integer-Werten, z.B. dans Schleifen, etc., gibt es dans XProfan zusätzlich quelques Befehle, qui plus rapide et übersichtlicher sommes:
LINKP:[INC] V% | augmenté V% um 1 | LINKP:[DEC] V% | erniedrigt V% um 1 | LINKP:[ADD] V%,n | augmenté V% um n | LINKP:[SUB] V%,n | erniedrigt V% um n | |
(Hierbei steht <b>V%</b> pour une beliebige Integer- ou bien Longint-Variable et <b>n</b> pour une beliebigen Ausdruck.)
Pour cela Zusammenfügen de Cordes (Zeichenketten) wird cela "+" verwandt: Text$ = "Du es " + Str$(Alter%) + " Jahre vieux."
zwar funktioniert dans einigen Versionen aussi: Text$ = "Du es ";Str$(Alter%);" Jahre vieux."
cependant ist seulement cela Pluszeichen comme Verknüpfungs-Operator défini. Es peux c'est pourquoi trop fehlerhaften Programmen mener, si ici pas sorgfältig gearbeitet wird.
<b>Hinweis:</b> qui automatische Typumwandlung funktioniert chez einfachen Variablen. chez Funktionen, qui une numerischen Wert zurückgeben, wird pas toujours automatisch umgewandelt, daher ist ici toujours qui Funktion @LINKF:[Str]$ trop verwenden! VOR et Pour den Operatoren muss un Leerzeichen stehen. là quelques Operatorzeichen aussi dans einem anderen Zusammenhang benutzt volonté, peut Compiler et Interpreter sonst fehlerhaften Code erzeugen.
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 31.07.2005 ▲ |
|
|
|