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

FAQ Fortran

FAQ FortranConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 70, dernière mise à jour : 23 juillet 2021 

 
OuvrirSommaire Où l'on apprend à lire écrire et compter !

On utilise tout simplement la traduction littérale de l'anglais, la commande write dont voici la syntaxe générale :

Syntaxe générale de la commande write
Sélectionnez
 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.

Un exemple d'utilisation de la commande write
Sélectionnez
 ! 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.

Exemple avec plusieurs variables
Sélectionnez
 real::a,b,c
     
 a = 2.0
 b = 4.0
 c = 6.0

 write(*,*)"a = ",a," b = ",b," c = ",c
Créé le 22 octobre 2008  par Germain Salvato-Vallverdu

On utilise tout simplement la traduction littérale de l'anglais, la commande read dont voici la syntaxe générale :

Syntaxe générale de la commande read
Sélectionnez
 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.

Exemples de lectures avec la commande read
Sélectionnez
 ! 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".

Exemples de lectures avec la commande read
Sélectionnez
 write(*,*)"Quel est votre nom et votre prenom ?"
 read(*,*)nom,prenom
 write(*,*)" nom = ",nom," prenom = ",prenom
Créé le 22 octobre 2008  par Germain Salvato-Vallverdu

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.

Exemple d'impression à l'écran
Sélectionnez
 write(6,*)"coucou"

 write(*,*)"coucou"
Créé le 22 octobre 2008  par Germain Salvato-Vallverdu

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.

Exemple de lecture au clavier
Sélectionnez
 ! lecture d'un entier au clavier

 read(5,*)entier

 read(*,*)entier
Créé le 22 octobre 2008  par Germain Salvato-Vallverdu

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.

Exemple d'utilisation de err
Sélectionnez
      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.

Exemple d'utilisation de iostat
Sélectionnez
 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
Créé le 22 octobre 2008  par Germain Salvato-Vallverdu

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.

Opérateurs mathématiques
Sélectionnez
 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
Créé le 22 octobre 2008  par Germain Salvato-Vallverdu

Copyright © 2008 developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.