4. Opérateurs et expressions▲
4-1. Opérateurs arithmétiques▲
4-1-1. Les opérateurs▲
4-1-2. Les expressions▲
|
Règle d'usage |
Interprétation |
|---|---|
|
ajoute o2 à o1 |
|
|
+ o1 |
égal à o1 |
|
soustrait o2 à o1 |
|
|
- o1 |
inverse le signe de o1 |
|
multiplie o1 par o2 |
|
|
o1 divisé par o2 |
|
|
élève o1 à la puissance o2 |
Les opérandes o1 et o2 peuvent être :
- une constante numérique ;
- une variable numérique, précédée ou non d'un opérateur unaire (+ ou -) ;
- une expression arithmétique entre parenthèses.
2.
3.
4.
5.
3.14159
K
(A + B) * (C + D)
-1.0 / X + Y / Z ** 2
-2.0 * 3.14159 * RADIUS
4-1-3. Conversion implicite▲
Le type d'une expression arithmétique dépend des types de ses opérandes.
Dans le cas d'opérateurs binaires :
- Si les 2 opérandes sont du même type alors l'expression arithmétique résultante sera du même type ;
- Si un des 2 opérandes est de type
INTEGERet l'autre de typeREAL, alors l'opérande de typeINTEGERest préalablement converti enREALet l'opération effectuée en modeREAL.
2.
3.
4.
5.
Expression Valeur
99/100 0
7/3 2
(100*9)/5 180
(9/5)*100 100
4-2. Opérateurs relationnels▲
|
Opérateur |
Opération |
|---|---|
|
strictement plus petit |
|
|
inférieur ou égal |
|
|
égal |
|
|
non égal |
|
|
strictement plus grand |
|
|
supérieur ou égal |
Ces opérateurs admettent des opérandes de type INTEGER, REAL ou CHARACTER. Seuls les opérateurs ==, /= peuvent s'appliquer à des expressions de type COMPLEX.
2.
3.
4.
N .GE. 0
X .LT. Y
Z /= 3.7
(B**2 - 4*A*C) .GT. 0.
4-3. Opérateurs logiques▲
|
Opérateur |
Opération |
|---|---|
|
négation logique |
|
|
conjonction logique |
|
|
disjonction inclusive |
|
|
équivalence logique |
|
|
non-équivalence logique |
Les opérandes doivent être des expressions de type LOGICAL.
4-3-1. Les tables de vérité▲
Opérateur de négation :
|
l |
|
|---|---|
|
|
|
|
|
|
Autres opérateurs :
|
l1 |
l2 |
||
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
l1 |
l2 |
||
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4-4. Opérateur de concaténation▲
L'opérateur de concaténation n'admet que des expressions de type CHARACTER.
|
Expression |
Interprétation |
|---|---|
|
concatène c1 avec c2 |
2.
3.
4.
5.
6.
'BON' // 'JOUR' --> 'BONJOUR'
CHARACTER(LEN=10) :: ch = 'BON'
ch = ch // 'JOUR' ! <-- INVALIDE !!!
ch = TRIM(ch) // 'JOUR' ! <-- VALIDE
4-5. Opérateur d'affectation▲
4-5-1. Syntaxe générale▲
variable = expressionoù expression est une expression arithmétique, logique ou relationnelle.
4-5-2. Règles de typage▲
- Une valeur de type
CHARACTERne peut pas être affectée à une variable numérique ou vice-versa. - Une valeur de type
INTEGERpeut être affectée à une variable de typeREAL. - Une valeur de type
REALpeut également être affectée à une variable de typeINTEGER. Mais dans ce cas, la valeur est alors tronquée en supprimant la partie fractionnaire.
2.
3.
4.
Expression Interprétation
x = 5 x = 5.0
N = 0.9999 N = 0
M = -1.9999 M = -1
4-6. Priorité des opérateurs▲
Dans le tableau suivant, les opérateurs sont donnés par ordre de priorité décroissante :
|
Opérateur |
Associativité |
|---|---|
|
∗∗ |
D → G |
|
∗ et / |
G → D |
|
+ et − |
G → D |
|
|
G → D |
|
|
G → D |
|
|
G → D |
|
|
G → D |
|
|
G → D |
|
|
G → D |
2.
3.
4.
5.
6.
7.
8.
9.
REAL a,b,c,d
LOGICAL e, f, g
Expression Interprétation
2**3**2 2**(3**2) = 512
5.+4.*9.**2 5.+(4.*(9.**2)) = 329
e.OR.f.AND.g e.OR.(f.AND.g)
a**b+c.GT.d.AND.e (((a**b)+c).GT.d).AND.e


