Vous êtes sur la page 1sur 92

Langage de programmation

Un langage de programmation est une notation


utilisée pour exprimer des algorithmes et écrire
des programmes. Un algorithme est un procédé
pour obtenir un résultat par une succession de
calculs, décrits sous forme de pictogrammes et de
termes simples dans une langue naturelle.
Historique
Années 50: Création des langages de haut niveau (plus
proches de l'homme).
Années 60: Foisonnement de langages spécialisés. Forth.
Simula I. Lisp, Cobol.
Années 70: Duel entre programmation structurée avec
Pascal et l'efficacité du langage C (cela dure encore en
2000).
Années 80: Expérimentation d'autres voies et notamment
des objets. ML. Smalltalk. Sur les microordinateurs, utilise
maintenant C, Pascal, Basic compilé.
Historique
Années 90: Généralisation de la programmation objet
grâce aux performances des microordinateurs. Java,
Perl, Python s'ajoutent aux langages micros.

Années 2000: Programmation Internet (et les


innovations à venir, voir en fin de texte).

Années 2010: Concurrence et asynchronisme. Les


langages JavaScript, Go, Julia entre autre aident à
créer des applications en ligne fluides.
Quelque langages de
programmation
Programme informatique?
Un programme informatique est un ensemble d'opérations
destinées à être exécutées par un ordinateur.

Un programme source est un code écrit par


un informaticien dans un langage de programmation. Il
peut être compilé vers une forme binaire, ou directement
interprété.

Un programme binaire décrit les instructions à exécuter


par un microprocesseur sous forme numérique. Ces
instructions définissent un langage machine.c
Programme informatique?
Programme informatique?
Le langage machine.
Le langage FORTRAN
• Fortran est un langage de programmation,
développé par IBM vers 1955, et destiné a
fournir aux scientifiques un moyen simple pour
passer de leurs formules mathématiques jusqu'a
un programme effectif (son nom est une
abréviation de FORmula TRANslator).
• Il est très efficace dans le domaine du calcul
numérique, et ore de nombreuses bibliothèques
de programmes d'analyse numérique.
Le langage FORTRAN
Fortran a fait l'objet de plusieurs normalisations :
fortran 77, fortran 90 et 95, et plus recemment
fortran 2003. Le present document s'interesse
aux versions 90/95 (peu dierentes l'une de
l'autre).
Le langage FORTRAN
Structure de programme
Un programme source Fortran est composé de parties
indépendantes appelées unités de programme (scoping unit) :

le programme principal

les sous-programmes :

de type subroutine
de type function
les modules

les block data


Le langage FORTRAN
Structure de programme
program nom_du_programme

« déclaration des variables »

« instructions »

end program nom_du_programme


Le langage FORTRAN
Structure de programme
Le langage FORTRAN
Structure de programme

Deux format d’écriture :


Format Fixe (anciennes version)
Format Libre (à partir de la version 90)
Le langage FORTRAN
Structure de programme
Dans le mode < format libre > les lignes peuvent

être de longueur quelconque a concurrence de 132 caracteres.

Il est également possible de coder plusieurs instructions sur


une même ligne en les séparant avec le caractère ; .

Le caractère « ! » indique que ce qui suit est un commentaire

Exemple :

print *, ' Entrez une valeur :’ ; read *,n


Le langage FORTRAN
Structure de programme

Une instruction peut être codée sur plusieurs


lignes :

on utilisera alors le caractére < & >.

Exemple

print *, 'Montant HT :', montant_ht, &


' TVA :', tva , &
'Montant TTC :', montant_ttc
Le langage FORTRAN
Déclarations & variables

Identificateurs
Donne un nom à :
une variable
une constante
une procédure
Le langage FORTRAN
Déclarations & variables
Identificateurs
Règles à suivre :
suite de caractères alphanumériques (lettres non
accentuées, chiffres, underscore“_“)
une lettre en premier caractère
longueur limitée à 31 caractères
pas de distinction majuscule/minuscule (case
insensitive)
Le langage FORTRAN
Déclarations & variables

Identificateurs
Exemples :
A
test1
AbCdE
ze_E
Le langage FORTRAN
Déclarations & variables

Identificateurs
Exemples (incorrects):
1var
test 1
Ab CdE
ze-E
program
Le langage FORTRAN
Déclarations & variables
Types de données
Le type d’une variable détermine :
le nombre d’octets à réserver en mémoire
un mode de représentation interne
l’ensemble des valeurs admissibles
l’ensemble des opérateurs qui peuvent lui être
appliqués
Le langage FORTRAN
Déclarations & variables
Types de données
INTEGER  entier
CHARACTER  caractère
LOGICAL  deux valeurs, .TRUE. ou .FALSE.
REAL  réel simple précision
DOUBLE PRECISION  réel double précision
COMPLEX  complexe simple précision
Le langage FORTRAN
Déclarations & variables

Exemples de déclaration
INTEGER :: A
REAL :: D
LOGICAL logi
CHARACTER Char !un seul caractère
CHARACTER(len=4) chaine !une chaine de 4 caractère
COMPLEX z

Les «::» ne sont pas obligatoires


Le langage FORTRAN
Déclarations & variables

Initialisation et modification
Une initialisation pourra s’effectuer à l’aide du
symbole « = »
Fortran permet d’initialiser une variable lors de sa
déclaration
Dans ce cas, les caractères :: sont obligatoires
Le langage FORTRAN
Déclarations & variables

Initialisation et modification

Exemples:
INTEGER :: A=5
REAL D
LOGICAL :: logi= .TRUE.
CHARACTER Char !un seul caractère
CHARACTER(len=4) chaine !une chaine de 4 caractère

D=4.5
chaine = ‘abcd’
Le langage FORTRAN
Déclarations & variables

Le type INTEGER (entier):


INTEGER :: a,b,c
a=-5
c=+10;b=22
Le langage FORTRAN
Déclarations & variables
Le type REAL (Réel):
Les constantes de type réel s’écrivent indifféremment suivant
l’une des deux notations:
Décimale (doit comporter obligatoirement un .)
12.43 -0.38 .38 4. -.27
Exponentielle (utilisation de la lettre e, le . peut être absent)
4.25E4 4.25e+4 425e2
0.54e-2 5.4e-3
48e13 48.e13 48.0e13
Le langage FORTRAN
Déclarations & variables

Le type REAL (Réel):

En double précision, les constantes s’écrivent


obligatoirement sous forme exponentielle en utilisant
la lettre d à la place de e.

4.25D4 4.25d+4 425d2


Le langage FORTRAN
Déclarations & variables

Le type COMPLEX (complexe):

Pour Fortran, un nombre complexe est un couple de


nombres réels.

variable = cmplx(variable_r,variable_i)
complex :: z
Exemple : real :: x,y
……
z = cmplx(x,y)
Le langage FORTRAN
Déclarations & variables
Le type CHARACTER (chaine de caractère):
Pour déclarer une chaîne de caractères on précise sa
longueur. Si elle n’est pas indiquée elle est égale à 1.
character[(len=<longueur>)] [,<attribut(s)>] [::] <variable> [=<value>]

Longueur:
Expression entière ou * (déduction par le compilateur
de la longueur)
Le langage FORTRAN
Déclarations & variables

Le type CHARACTER (chaine de caractère):

character(len=10) :: nom
character :: oui_ou_non
character(len=10) :: ville=’sidi bel abbes’ !Tronqué
character(len=8) :: payé=’Algérie' !complété à gauche
character(len=8) :: capitale='Algérie'
character(len=*),parameter :: lang='F90' !auto-détecté
Le langage FORTRAN
Déclarations & variables
Les expressions constantes
permet de définir une « constante symbolique », un
symbole auquel on attribue une valeur qui ne pourra être
modifiée par le programme.
<type>, parameter :: <variable(s)> = <value>
Ici les :: sont obligatoires.

Exemple : interger, parameter :: n1=50, n2=120


REAL, parameter:: PI=3.14
Le langage FORTRAN
Déclarations & variables

Les types implicites


• Fortran 90 ne rend pas obligatoire les déclarations des
types des variables.
• Fortran attribue implicitement un type à une variables
non définies
Exemple : integer :: nbre = 5, k
……
k = nbr + 1
Le langage FORTRAN
Déclarations & variables

Les types implicites

Solution : Supprimer les types implicites

On ajoutant l’ instruction IMPLICIT NONE avant la


déclaration des variables.
ReAl :: x
CHARACTER :: name
CHARACTER(LEN=10) :: name
REAL :: var-1
INTEGER :: 1a
BOOLEAN :: loji
DOUBLE :: X
CHARACTER(LEN=5) :: town = "Glasgow"
CHARACTER(LEN=*) :: town = "Glasgow"
CHARACTER(LEN=*), PARAMETER :: city = "Glasgow"
INTEGER :: pi = +22/7
LOGICAL :: wibble = .TRUE.
CHARACTER(LEN=*), PARAMETER :: "Bognor"
REAL, PARAMETER :: pye = 22.0/7.0
REAL :: two_pie = pye*2
REAL :: a = 1., b = 2
LOGICAL(LEN=12) :: frisnet
CHARACTER(LEN=6) :: you_know = ’y’know"
CHARACTER(LEN=6) :: you_know = "y’know"
INTEGER :: ia ib ic id
DOUBLE PRECISION :: pattie = +1.0D0
DOUBLE PRECISION :: pattie = -1.0E-0
REAL :: poie = 4.*atan(1.)
ReAl :: x ok
CHARACTER :: name ok
CHARACTER(LEN=10) :: name ok
REAL :: var-1 on ne peut pas avoir « -1 » dans un identificateur
INTEGER :: 1a un iden. ne peut pas commencer par un nombre
BOOLEAN :: loji type « boolean » n’existe pas : utiliser « logical »
DOUBLE :: X le type correct est « double precision »
CHARACTER(LEN=5) :: town = "Glasgow” OK, town=« Glasg »
CHARACTER(LEN=*) :: town = "Glasgow” on ne peut pas avoir «
len(*) » pour un non-PARAMETER
CHARACTER(LEN=*), PARAMETER :: city = "Glasgow” ok
INTEGER :: pi = +22/7 OK, la valeur de pi sera 3 car c’est un entier
LOGICAL :: wibble = .TRUE. ok
CHARACTER(LEN=*), PARAMETER :: "Bognor" Non, pas de nom de variable
REAL, PARAMETER :: pye = 22.0/7.0 ok
REAL :: two_pie = pye*2 OK si pye est un PARAMETER
REAL :: a = 1., b = 2 OK, la valeur de b est 2.0
LOGICAL(LEN=12) :: frisnet Non, pas de LEN dans LOGICAL
CHARACTER(LEN=6) :: you_know = ’y’know” problème des délimiteurs
CHARACTER(LEN=6) :: you_know = "y’know” ok
INTEGER :: ia ib ic id enlever les espaces ou mettre des virgules
DOUBLE PRECISION :: pattie = +1.0D0 OK, les « : : » sont obligatoires
DOUBLE PRECISION :: pattie = -1.0E-0 ok
REAL :: poie = 4.*cos(0.3) utilisation interdite de fonctions (cos)
Le langage FORTRAN
Les expressions et l’instruction d’affectation

L’instruction d’affectation se présente sous la


forme:

<variable> = <expression>
Le langage FORTRAN
Les expressions et l’instruction d’affectation

Expressions arithmétiques:
Addition : +
Soustraction : -
Multiplication : *
Division : / (Pas de division par zéro!)
Exponentiation :** (ab  a**b)
Le langage FORTRAN
Les expressions et l’instruction d’affectation
Expression peut faire intervenir

des opérateurs comme la division entière,


l’exponentiation,…
plusieurs opérateurs et, donc, des problèmes de priorité
des variables de types différents, ce qui engendre des
conversions implicites
une variable ayant un type différent du résultat fourni par
l’expression engendre des conversions forcées
Le langage FORTRAN
Les expressions et l’instruction d’affectation

Attention!:

Le résultat de la division entre deux entiers


est un entier (partie entière du quotient
exact).

5/2 = 2 7/5 = 1 -8/3 = -2


Le langage FORTRAN
Les expressions et l’instruction d’affectation

Ordre des opérations


Exponentiation
Multiplication et division (gauche à droite)
Addition et soustraction
En cas de doute, utiliser les parenthèses!

Exemple: 4+ 8/2 vaut 6 ou 8 ?


Le langage FORTRAN
Les expressions et l’instruction d’affectation

Nombres complexes : Opérateurs usuels


complex(kind=4) :: z
real(kind=4) :: x=0.,y=1.

z = cmplx(x,y) !assignation simple précision (SP)

real(z) !partie réelle
imag(z) !partie imaginaire
conjg(z) !complexe conjugué
abs(z) !module
Le langage FORTRAN
Les expressions et l’instruction d’affectation

Expressions logiques : les comparaisons


Le langage FORTRAN
Les expressions et l’instruction d’affectation
Le langage FORTRAN
Les expressions et l’instruction d’affectation
Chaine de caractère : Extraction de sous-chaine
Manipulation d’une partie formée de caractères
consécutifs d’une chaîne.
Variable_chaine(debut:fin)
debut et fin : expression de type integer
Si debut absent: 1 par défaut
Si fin absent : longueur de la chaîne par défaut
Le langage FORTRAN
Les expressions et l’instruction d’affectation

Chaine de caractère : Extraction de sous-chaine

mot = ‘bonjour’
print *, mot(2:6)  Onjou
print *, mot(:3)  Bon
print *, mot(4:)  Jour
mot(2:2) = ‘a’
print *, mot(1:5)  banjo
Le langage FORTRAN
Les opérations de lecture et d’écriture

Les ordres d’entrée/sortie permettent de transférer


des informations entre la mémoire centrale et les
unités périphériques (terminal, clavier, disque,
imprimante,…)
Le langage FORTRAN
Les opérations de lecture et d’écriture

print *,a
Le langage FORTRAN
Les opérations de lecture et d’écriture

Sortie

write(périphérique, format [,options]) liste


print format , liste

Entrée

read(périphérique, format [,options]) liste


read format , liste
Le langage FORTRAN
Les opérations de lecture et d’écriture
Sortie : Sortie Standard(Ecran)

print *, ‘Je suis un texte à afficher’

Le * est associé au format de sortie.

write(*,*) ‘Je suis un texte à afficher’


Le 1ier * est associé au sortie standard(Ecran).
Le 2ier * est associé au format de sortie.
Le langage FORTRAN
Les opérations de lecture et d’écriture

Sortie : Sortie Standard(Ecran)


Affichage de la valeur dune variable:
real :: var
var = 2.5
Print* , var

ou
print * , 'La variable var vaut : ' , var
Le langage FORTRAN
Les opérations de lecture et d’écriture

Entrée : Entrée Standard(Clavier)


integer age
character(len=20) nom
character(len=20) prenom

read *, nom
read *, nom, prenom, age
read *, prenom
read *, age
Le langage FORTRAN
Les opérations de lecture et d’écriture

Entrée : Entrée Standard(Clavier)

D’une manière interactive


integer age
character(len=20) nom
character(len=20) prenom
print * , ’Entrez votre nom : ’; read *, nom
print * , ’Entrez votre prenom : ’; read *, prenom
print * , ’Entrez votre age : ’; read *, age
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

Les fonctions mathématiques élémentaires


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
abs(a) Fournit la valeur absolue de (⎟ a⎟) , de type
entier, réel ou complexe. Le résultat est du type de
a.
Si a est complexe (a = (x; y)), le résultat est de type
real et égal à
Exemples
abs(-7.4) = 7.4
abs((6.0, 8.0)) = 10.0
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

imag(z), aimag(z) Fournit la partie imaginaire de z,


de type complexe. Le résultat est de type real. Si z =
(x; y), le résultat est égal à y.

Exemple :

aimag((4:0; 5:0)) = 5:0


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
int(a) Fournit le résultat de la conversion en entier
standard de la valeur de a qui peut être entière (le
résultat est alors égal à a), réelle (le résultat est aIors
égal à la troncature de a ou complexe (le résultat est
alors égal à la troncature de la partie réelle de a).
Exemple :
int(-4.2) = -4
int(7.8) = 7
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
cmplx(x,y) Si y est absent : fournit le résultat de la
conversion de la valeur x (de type numérique
quelconque, complexe compris) en un complexe
standard, Si y est présent : fournit le résultat de la
conversion du complexe (x,y) (x et y doivent être de type
entier ou réel) dans le type complexe standard.
Exemple :
cmplx(-3) = (-3.0; 0.0)
cmplx(4.1, 2.3) = (4.1, 2.3)
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

real(a) Fournit le réel correspondant à a qui peut


être de type numérique quelconque (s'il est
complexe, on obtient la partie réelle).

Exemple :

Real(-4) = -4.0
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

conjg(z) Fournit le complexe conjugué du complexe


z.

Exemple :

conjg((2.0, 3.0)) = (2.0,-3.0)


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

max(a1, a2, a3. . .) Fournit la valeur maximale des


valeurs reçues en arguments (entiers ou réels).

Exemple :

max(2.0,-8.0; 6.0) = 6.0


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

min(a1, a2, a3. . .) Fournit la valeur minimale des


valeurs reçues en arguments (entiers ou réels).

Exemple :

min(2.0,-8.0; 6.0) = -8.0


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
mod(a, p) Fournit la valeur le reste de la division a / p

Exemple :

mod(7, 3) = 1

mod(9,-6) = 3

Cette fonction est souvent utilisée pour tester si un nombre est pair ou impair.

Exemple :

mod(4,2) = 0

mod(5,2) = 1
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

cos(x) Fournit le cosinus de x pour x réel ou


complexe, exprimé en radians.

sin(x) Fournit le sinus de x pour x réel ou complexe


et exprimé en radians.

tan(x) Fournit la tangente de x réel exprimé en


radians.
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
exp(x) Fournit la valeur de l'exponentielle de x pour x
réel ou complexe.
log(x) Fournit la valeur du logarithme népérien de x, réel
positif ou complexe non nul.
log10(x) Fournit la valeur du logarithme à base 10 du
réel positif x.
sqrt(x) Fournit la valeur de la racine carrée de x, réel
positif ou nul ou complexe.
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

Les fonctions relatives aux chaînes de


caractères
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

trim(chaine) Fournit une chaîne obtenue en


débarrassant la chaîne chaine de tous ses blancs
de n.

Exemple :

Trim(‘###C##D###’) =‘###C##D’

Le caractère # représente ici un blanc.


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

len(chaine) Entier (integer standard) correspondant


à la longueur de la chaîne chaine.

Exemple : si c a été déclaré comme suit character(15)


:: c

alors

len(c) = 15
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

len_trim(chaine) Fournit la longueur (type integer


standard) de la chaîne chaine débarrassée de ses
blancs de n.

Exemple :

len_trim(‘###C##D###’) = 7

Le caractère # représente ici un blanc.


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
adjustl(chaine) Fournit en résultat la chaîne chaine
cadrée à gauche , c'est-à-dire débarrassée de tous
ses blancs de début (et donc complétée à droite par
autant de blancs supplémentaires).
Exemple :
adjustl(’####summer’) = ’summer####’
Le caractère # représente ici un blanc.
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
adjustr(chaine) Fournit en résultat la chaîne chaine
cadrée à droite , c'est-à-dire débarrassée de tous
ses blancs de n (et donc complétée à gauche par
autant de blancs supplémentaires).
Exemple :
Adjustl(‘summer####’) =‘####summer’
Le caractère # représente ici un blanc.
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90
index(chaine souschaine, back) Fournit un entier (de type
integer standard) correspondant au premier caractère de la
chaîne chaine où apparaît la sous-chaîne souschaine (ou la
valeur 0 si cette sous-chaîne n'apparaît pas). Si back (de type
logical) n'est pas précisé ou s'il a la valeur faux, l'exploration
se fait depuis le début de la chaîne ; si back a la valeur vrai,
cette recherche se faitdepuis la n de la chaîne (on a donc, en
fait, la dernière occurrence de la sous-chaîne).

Exemple :

Index(‘caractere’,’a’, back = .true.) = 4


Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

lgt(chaine_a, chaine_b), lge(chaine_a, chaine_b)


Fournit la valeur vrai si la chaîne chaine_a apparaît
après chaine_b ou lui est égale (dans l'ordre
alphabétique donné par la table de caractères).

Exemple :

lge(‘TWO’,’THREE’) = true
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

llt(chaine_a, chaine_b), lle(chaine_a, chaine_b)


Fournit la valeur vrai si la chaîne chaine_a apparaît
avant chaine_b ou lui est égale (dans l'ordre
alphabétique donné par la table de caractères).

Exemple :

lge(’TWO’;’THREE’) = false
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

char(i) Fournit une chaîne de caractères de


longueur 1 correspondant au caractère de code
ASCII i (entier).

Exemple :

char(71) =‘G’

char(63) =‘?’
Le langage FORTRAN
Les fonctions intrinsèques en Fortran 90

ichar(c) Fournit l'entier (type integer standard)


correspondant au code ASCII du caractère c
(chaîne de longueur 1).

Exemple :

ichar(‘Y‘) = 89

ichar(‘%‘) = 37
Le langage FORTRAN

Les instructions de contrôle


Le langage FORTRAN
Les instructions de contrôle

L’intérêt d’un programme provient essentiellement


de la possibilité d’effectuer :
des choix (comportement différent suivant les
circonstances)
des boucles (répétition d’un ensemble donné
d’instructions)
Le langage FORTRAN
Les instructions de contrôle

Fortran 90 est un langage structuré disposant des


structures suivantes :
choix simple et alternatives « en cascade » avec
l’instruction if
choix multiple avec l’instruction select case
répétition avec l’instruction do.
Le langage FORTRAN
Les instructions de contrôle
L’instruction IF : Choix simple

if (<exp_logique>) then
… ! instructions exécutées si exp_logique est vraie
else
… ! instructions exécutées si exp_logique est fausse
end if

la partie introduite par le mot clé else peut ne pas exister


on peut écrire end if ou endif
Le langage FORTRAN
Les instructions de contrôle

L’instruction IF : Choix simple


Le langage FORTRAN
Les instructions de contrôle
L’instruction IF : Choix simple

moyenne=(note1+note2)/2
if (moyenne>=10) then
print *, “Etudiant admis avec moyenne de “,moyenne
else
print *, “Etudiant ajourné avec moyenne de “,moyenne
end if
Le langage FORTRAN
Les instructions de contrôle

Expressions logiques : les comparaisons


Le langage FORTRAN
Les instructions de contrôle

Expressions logiques : les comparaisons


if (moyenne>=10) then

if (age<30) then

if (ok==.true.) then
ou bien
if (ok) then

if (ok/=.true.) then
ou bien
if (.not. ok) then
Le langage FORTRAN
Les instructions de contrôle

Expressions logiques : les comparaisons


• On peut combiner plusieurs expression logique.
• On utilise les opérateurs logiques :
• .and.
• .or.
• .eqv.
• .neqv.
Le langage FORTRAN
Les instructions de contrôle

Expressions logiques : les comparaisons

Exemple : si on veut tester si l’utilisateur de notre


programme a entrer une note correct(càd ≤ 20 et ≥0):
if (note>=0 .and. Note<=20) then
Le langage FORTRAN
Les instructions de contrôle
Le langage FORTRAN
Les instructions de contrôle
Alternatives imbriquées if ... else
! structure avec ELSE IF
IF (i < 0) THEN
WRITE *, "négatif"
! ELSEIF sur une même ligne
ELSE IF (i > 10) THEN
WRITE *, "positif"
ELSE
WRITE *, "null"
END IF ! un seul END IF
Le langage FORTRAN
Les instructions de contrôle

Alternatives imbriquées
if ... else
Le langage FORTRAN
Les instructions de contrôle
select case (<exp_scal>)
L’instruction
case SELECT
(<sélecteur>) CASE : Choix multiple
bloc
case (<sélecteur>)
bloc

case default
bloc
end select
exp_scal : expression scalaire de type INTEGER, LOGICAL,CHARACTER
sélecteur : liste composée de 1 ou plusieurs éléments de la forme :
valeur
intervalle de la forme [valeur1]:valeur2 ou valeur1:[valeur2]
Le langage FORTRAN
Les instructions de contrôle
integer :: i
… L’instruction SELECT CASE : Choix multiple
select case(i)
case(0)
… !s’exécute si i=0
case(1,2)
… !s’exécute si i=1 ou i=2
case(5:10)
… !s’exécute si 5<=i<=10
case(:-1)
… !s’exécute si i<=-1
case(3,11:20)
… !s’exécute si i=3 ou 11<=i<=20
case default
… !s’exécute dans tous les autres cas
end select
Le langage FORTRAN
Les instructions de contrôle
Exemple
integer :: jour
read*,jour
select case(jour)
case(1)
print *, "Dimanche"
case(2)
print *, "Lundi"
...
case(7)
print *, "Samedi"
case default
print *, "Numéro de jour incorrect"
end select

Vous aimerez peut-être aussi