IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Les notions de base du Fortran

Support de cours


précédentsommairesuivant

4. Opérateurs et expressions

4-1. Opérateurs arithmétiques

4-1-1. Les opérateurs

Opérateur

Opération

+

addition (opérateur binaire)

+

identité (opérateur unaire)

-

soustraction (opérateur binaire)

-

opposé (opérateur unaire)

*

multiplication

/

division

**

puissance

4-1-2. Les expressions

Règle d'usage

Interprétation

o1 + o2

ajoute o2 à o1

+ o1

égal à o1

o1 - o2

soustrait o2 à o1

- o1

inverse le signe de o1

o1 * o2

multiplie o1 par o2

o1 / o

o1 divisé par o2

o1 ** 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.
Exemples d'expressions
Sélectionnez
1.
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 :

  1. Si les 2 opérandes sont du même type alors l'expression arithmétique résultante sera du même type ;
  2. Si un des 2 opérandes est de type INTEGER et l'autre de type REAL, alors l'opérande de type INTEGER est préalablement converti en REAL et l'opération effectuée en mode REAL.
Exemples
Sélectionnez
1.
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

.LT. ou <

strictement plus petit

.LE. ou <=

inférieur ou égal

.EQ. ou ==

égal

.NE. ou /=

non égal

.GT. ou >

strictement plus grand

.GE. ou >=

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.

Exemples
Sélectionnez
1.
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

.NOT.

négation logique

.AND.

conjonction logique

.OR.

disjonction inclusive

.EQV.

équivalence logique

.NEQV.

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

.NOT. l

.true.

.false.

.false.

.true.

Autres opérateurs :

l1

l2

l1 .AND. l2

l1 .OR. l2

.true.

.true.

.true.

.true.

.true.

.false.

.false.

.true.

.false.

.true.

.false.

.true.

.false.

.false.

.false.

.false.

l1

l2

l1 .EQV. l2

l1 .NEQV. l2

.true.

.true.

.true.

.false.

.true.

.false.

.false.

.true.

.false.

.true.

.false.

.true.

.false.

.false.

.true.

.false.

4-4. Opérateur de concaténation

L'opérateur de concaténation n'admet que des expressions de type CHARACTER.

Expression

Interprétation

c1 // c2

concatène c1 avec c2

Exemple
Sélectionnez
1.
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

 
Sélectionnez
variable = expression

où expression est une expression arithmétique, logique ou relationnelle.

4-5-2. Règles de typage

  1. Une valeur de type CHARACTER ne peut pas être affectée à une variable numérique ou vice-versa.
  2. Une valeur de type INTEGER peut être affectée à une variable de type REAL.
  3. Une valeur de type REAL peut également être affectée à une variable de type INTEGER. Mais dans ce cas, la valeur est alors tronquée en supprimant la partie fractionnaire.
Exemples
Sélectionnez
1.
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

.NOT.

G → D

.AND.

G → D

.OR.

G → D

.EQV. et .NEQV.

G → D

Exemples
Sélectionnez
1.
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

précédentsommairesuivant

Copyright © 2006 Patrick Corde et Anne Fouilloux. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.