FAQ Fortran
FAQ FortranConsultez toutes les FAQ
Nombre d'auteurs : 1, nombre de questions : 70, dernière mise à jour : 23 juillet 2021
On utilise tout simplement la traduction littérale de l'anglais, la commande write dont voici la syntaxe générale :
write
( "où"
, "comment"
)
! où = où est ce que je dois écrire.
! comment = comment est ce que je dois écrire, le format.
On spécifie où est ce qu'on doit écrire en donnant le numéro logique de la sortie à utiliser. Par exemple, 6 désigne l'écran. On spécifie comment est ce qu'on doit écrire en donnant le format.
! exemples pour écrire bonjour
! sur la sortie standard au format standard
write
(*,*)"bonjour"
! sur la sortie 18 au format a qui est celui des chaine de caractères
write
( 18 , "(a)"
)"bonjour"
Les étoiles désignent les valeurs par défaut. La sortie standard de la commande write est l'écran, Le format étoile est un format standard qui dépend des compilateurs. En général, les numéros logiques de 1 à 10 sont réservés et désignent divers périphériques de l'ordinateur (par exemple 6 est l'écran). Les nombres suivants peuvent être attribués à des fichiers ou d'autres périphériques .
Si l'on souhaite écrire plusieurs variables ou chaînes de caractères, on les sépare par une virgule.
real
::a,b,c
a = 2.0
b = 4.0
c = 6.0
write
(*,*)"a = "
,a," b = "
,b," c = "
,c
On utilise tout simplement la traduction littérale de l'anglais, la commande read dont voici la syntaxe générale :
read
( "où"
, "comment"
)
! où = où est ce que je dois lire
! comment = comment est ce que je dois lire
On spécifie où est ce qu'on doit lire en donnant le numéro logique de l'entrée à utiliser. Par exemple, 5 désigne le clavier. On spécifie comment est ce qu'on doit lire en donnant le format dans lequel est écrit ce que l'on souhaite lire. faire un lien vers format.
! on demande à l'utilisateur de saisir un entier
write
(*,*)"écrire un entier positif"
! on lit l'entier sur * = le clavier au format * et on l'enregistre dans entier
read
(*,*)entier
! on affiche à l'écran l'entier que l'on vient de lire
write
(*,*)"vous avez écris "
,entier
La structure précédente contenant un write-read-write est vivement recommandée car elle permet de vérifier ce que l'on a lu.
Pour lire plusieurs variables en même temps, on les sépare par une virgule. Dans l'exemple suivant, l'utilisateur devra saisir son nom puis taper "Entrée", puis saisir son prénom et taper "Entrée".
write
(*,*)"Quel est votre nom et votre prenom ?"
read
(*,*)nom,prenom
write
(*,*)" nom = "
,nom," prenom = "
,prenom
Pour écrire quelque chose à l'écran, on va utiliser la commande write, en spécifiant le numéro logique de l'écran, 6, ou en utilisant la sortie standard, *, qui correspond à l'écran.
write
(6,*)"coucou"
write
(*,*)"coucou"
Pour lire quelque chose à partir du clavier, on va utiliser la commande read, en spécifiant le numéro logique du clavier, 5, ou en utilisant l'entrée standard, *, qui correspond au clavier.
! lecture d'un entier au clavier
read
(5,*)entier
read
(*,*)entier
Avec err
On peut utiliser l'option err dans l'instruction read pour renvoyer l'exécution du programme à une certaine ligne du code repérée par une étiquette s'il y a une erreur de lecture. Dans ce cas il est nécessaire d'utiliser le format fixe.
PROGRAM
erreur
implicit
none
integer
::entier
write
(*,*)"entrer un entier"
read
(*,"(i5)"
,err=100)entier ! lecture avec un format i5
write
(*,"(i5)"
)entier ! écriture avec un format i5
! suite des instructions
STOP
"fin normale du programme"
100 STOP
"erreur de lecture"
END
PROGRAM
erreur
Avec iostat
On peut utiliser l'option iostat dans l'instruction read qui permet d'enregistrer dans un entier un nombre qui permet d'indentifier s'il y a une erreur et de quel type. La valeur de l'entier dépend du compilateur mais son signe est normalisé. Si l'entier est nul, il n'y a pas d'erreur. Dans le cas de la lecture d'un fichier, une valeur négative signifie que l'on a atteint la fin du fichier. Une valeur positive signifie toujours une erreur.
PROGRAM
erreur
implicit
none
integer
::entier,io
write
(*,*)"entrer un entier"
read
(*,"(i5)"
,iostat=io)entier ! lecture avec un format i5
If
( io /=
0 ) Then
write
(*,"(i5)"
)entier ! écriture avec un format i5
Else
STOP
"erreur de lecture"
Endif
! suite des instructions
...
END
PROGRAM
erreur
On utilise les symboles habituels des opérations d'addition (+), de soustraction (-), de multiplication (*) et de la division (/). La puissance se fait par une double étoile.
PROGRAM
calcul
implicit
none
integer
::i,j,som,sous,prod,div,pui
i = 2
j = 3
! addition de i et j
som = i + j
! soustraction de i et j
sous = i - j
! multiplication de i et j
prod = i * j
! division de i et j
div = i / j
! i puissance j
pui = i ** j
END
PROGRAM
calcul