Académique Documents
Professionnel Documents
Culture Documents
1
HISTORIQUE DU FORTRAN
Le fortran (FORMULA TRANSLATION) est le premier langage
informatique de haut-niveau.
Né à la fin des années 1950 sous l’impulsion de John Backus 1.
PROGRAM nom_du_programme
[instructions exécutables]
CONTAINS
[procédures internes]
3
END PROGRAM nom_du_programme
STRUCTURE D’UN PROGRAMME(1)
L'instruction PROGRAM est facultative,
mais conseillée.
L'instruction END qui génère l'arrêt du
programme est obligatoire.
Les instructions de
spécification(Déclaration) sont des
instructions de déclaration, des définitions de
type, des blocs INTERFACE.
'instruction CONTAINS indique la présence
4
d'une ou plusieurs procédures.
STRUCTURE D’UN PROGRAMME(2)
Instructions de déclaration(de spécification ):
Déclaration des objets utilisés
Informations utiles a la compilation
Toujours précéder les instructions exécutables
Instructions exécutables:
Opérations mathématiques
Lecture/écriture de fichiers
Appel a des sous-programmes
…
5
LE BLOC DÉCLARATION
le bloc déclaration des variables sert à indiquer à la machine
quel est le type de chaque variable utilisée afin de réserver la
place en mémoire nécessaire.
déclaration signification ex. d’affectation
constante) ;
DIMENSION(dimensions) en fait un tableau avec
7
DÉCLARATION DES VARIABLES
Par défaut, les variables dont l’identificateur commence par
les caractères I à N sont de type INTEGER.
Toutes les autres sont de type REAL.
L’instruction IMPLICIT NONE change cette règle car elle
impose à l’utilisateur la déclaration de chaque variable.
- Cette instruction est vivement recommandée car elle
permet la détection d’un certain nombre d’erreurs à la
compilation.
• IMPLICIT NONE se place avant les déclarations des
variables,
• L’instruction ne s’applique qu’à l’unité de programme qui
la contient.
8
LES IDENTIFICATEURS (1)
caractères du clavier permettant de nommer une
variable ou un autre élément du programme ;
suite de 1 à 31 caractère alphanumériques parmi :
lettres sans accents majuscules et minuscules,
chiffres, caractère (souligné) ;
le 1er caractère doit être une lettre ;
– Fortran n’est pas sensible à la casse (les
majuscules et minuscules ne sont pas différentiées
)
9
LES IDENTIFICATEURS (2)
→ les identificateurs suivants sont valides :
constante_gaz
pi2
SM2020
avec espace
Il_y_a_plus_de_trente_et_un_caracteres
_souligne_devant
1_chiffre_devant
nom#alphanumerique 10
CONTINUATION DE LIGNE : CARACTÈRE &
Il est possible de couper la ligne en
morceaux en Plaçant & en fin de première
ligne et & au début de la ligne suivante :
Exemple:
souligne_devant &
& =65
11
LES COMMENTAIRES : SYMBOLE !
variable = expression
Où expression est une expression arithmétique,
logique ou relationnelle.
• Une valeur de type CHARACTER ne peut pas
être affectée à une variable numérique ou vice-
versa,
• Une valeur de type INTEGER peut être affectée
à une variable de type REAL,
• 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 13
14
LES ENTRÉES-SORTIES ÉCRAN/CLAVIER (2)
15
LES OPÉRATEURS
Opérateurs arithmétiques
+ - * / ** a = b + c*b**2
Opérateurs de comparaison
== /= IF (a==3) THEN
Opérateurs d’ordre (uniquement numérique)
Opérateur de concaténation
17
OPERATEURS LOGIQUES
18
BRANCHEMENT CONDITIONNEL
LE TEST IF
syntaxe générale :
[ nom : ] i f ( expression logique ) then
instructions
[ e l s e i f ( expression logique ) then
instructions ]
[else
instructions ]
End i f [ nom ]
19
BRANCHEMENT CONDITIONNEL
EXPRESSION LOGIQUE
20
BRANCHEMENT CONDITIONNEL :LE TEST IF
Exemple
Y=x ln x si x≠0
0 sinon
i f ( x /=0.0) then
y = x∗log ( x )
else
y=0.0 21
end i f
BRANCHEMENT CONDITIONNEL :LE TEST IF
0 si x<0 ou x>2
Y= √x si x∈[0,1]
1 si x>1
end if rac
BRANCHEMENT CONDITIONNEL :CHOIX MULTIPLE
IF
if ( x < 3) then
x=x+3
x=0
else
x=x+3
endif
23
ITÉRATIONS : STRUCTURE DO
FORME ÉNUMÉRATIVE (NOMBRE
D’ITÉRATIONS FIXÉ)
24
ITÉRATIONS : STRUCTURE DO
FORME ÉNUMÉRATIVE (NOMBRE D’ITÉRATIONS FIXÉ)
var : variable de type INTEGER
début, fin, incrément : expressions de type INTEGER
• si incrément est omis, il est pris par défaut égal à 1.
Remarques :
• var doit être déclarée dans le programme même si elle
n’apparaît pas
dans bloc (variable de contrôle qui compte les tours)
• var ne doit pas être modifiée dans le bloc régit par la boucle
• Si fin < début, incrément est un entier négatif (sinon le
programme n’entre pas dans la boucle)
25
26
ITÉRATIONS : STRUCTURE DO
FORME ÉNUMÉRATIVE (NOMBRE
D’ITÉRATIONS FIXÉ)
exemple :
calcul de s = 1 + 3 + 5 + 7 + 9
integer : : i , s
...
s=0
do i=1 ,9 ,2
s=s+i
end do 27
ITÉRATIONS : STRUCTURE DO
FORME ÉNUMÉRATIVE (NOMBRE
D’ITÉRATIONS FIXÉ)
end do [ nom ]
ITÉRATIONS : STRUCTURE DO
FORME INFINIE : ON NE SORT QU’AVEC
L’INSTRUCTION EXIT
Exemple
do
read ∗ , nombre
i f ( nombre==0) then
EXIT
end i f
somme = somme + nombre
end do
30
ITÉRATIONS : STRUCTURE DO
FORME CONDITIONNELLE : ARRÊT SI
LA CONDITION SPÉCIFIÉE EN DÉBUT DE
BOUCLE EST SATISFAITE
31
ITÉRATIONS : STRUCTURE DO
FORME CONDITIONNELLE : ARRÊT SI
LA CONDITION SPÉCIFIÉE EN DÉBUT DE
BOUCLE EST SATISFAITE
exemple :
reponse=’ oui ’
lecture : do while ( reponse==’ oui ’ )
print ∗ , ’ continue r ? ’
read ∗ , reponse
end do lecture 32
EXEMPLE DES BOUCLES
33
EXEMPLE BOUCLE POUR
34
EXEMPLE BOUCLE POUR
Somme des nombres de 1 à n
35
EXEMPLE BOUCLE POUR
Sommes des nombres impaires
36
EXEMPLE BOUCLE TANT QUE
i=1
s=0
do while (i<=n)
s=s+i
i=i+1
end do
print *,s
37
EXEMPLE BOUCLE RÉPÉTER
do
………………
……………..…
if ( condition ) then
Exit
s=0
End if i=1
End do do
s=s+i
i=i+1
if ( i>n) then
exit
end if
end do
print*,s 38