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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Signification fonction WRITE


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut Signification fonction WRITE
    Bonjour,
    je ne comprends pas ce que veut dire 11, 101, '(A6)', '(A72)', 12....?

    write(11,101)
    write(11,'(A6)')
    write(11,'(A72)')
    write(11,131)

    write(12,'(A13)'
    write(12,'(A6)')
    write(12,'(A103)')

    et les formats 1X,A5....?

    101 format(1X,A5,2X,I5)
    102 format(2(2X,A5,D14.7))
    103 format(27X,2(2X,A5,D14.7))
    104 format(1X,A5,2X,I5,2X,A5,2X,A5,2x,A10,I5,1(2X,A5,D14.7))
    131 format(1X,A5,2X,I5,2X,5X,2X,5X,3(2X,A5,D14.7))

    Merci de m'éclairer

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut !

    Contrairement à d'autres langages, le Fortran est doté d'une syntaxe très cohérente pour les opérations de lecture et d'écriture, syntaxe qui est décrite dans la norme définissant le langage et non fournie par une librairie externe. Dans chaque opération, tu dois dire.
    1. ce que tu lis/écris;
    2. sur quel support tu lis/écris;
    3. en quel format.


    La syntaxe est donc
    read (support,format) liste des variables
    write (support,format) liste des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          character*80 s
          integer a
            ...
          write(11,101) s(1:5),a
      101 format(1X,A5,2X,I5)
    Tu écris sur l'unité 11 (préalablement définie par une instruction open(11,...))
    une ligne comportant
    • une espace;
    • les 5 premiers caractères de la chaîne s;
    • deux espaces;
    • la valeur de la variable a justifiée à droite d'un champ comportant 5 positions.


    La manière plus "moderne" de faire la même chose sans utiliser cette instruction format que les néo-informaticiens honnissent est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          character*80 s
          integer a
            ...
          write(11,'1X,A5,2X,I5') s(1:5),a
    En résumé, les principaux formats sont:
    • An champ de n positions pour une chaîne de caractères.
    • In champ de n positions pour un nombre entier.
    • Fn.d champ de n position pour un nombre réel écrit en "virgule fixe" avec d décimales.
    • En.n champ de n position pour un nombre réel écrit en "notation scientifique" avec d décimales.


    Pour le reste, trouve-toi un bon manuel de Fortran.

    Bonne chance.
    Jean-Marc Blanc

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Il manque dans le dernier exemple de Jean-Marc les parenthèses qui doivent toujours englober les spécificateurs de format, lorsque celui-ci est donné comme argument du write:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    write(11,'(1X,A5,2X,I5)') s(1:5),a
    A propos, on peut également utiliser des guillemets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    write(11,"(1X,A5,2X,I5)") s(1:5),a
    Et puisqu'on est dans l'évocation des différentes manières de faire avec les formats, il y a aussi la possibilité d'écrire les spécificateurs de formats dans une chaine de caractères. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    character (len=80) :: monformat  ! déclaration d'une chaine de caractère de 80 éléments
      ...
    monformat="(1X,A5,2X,I5)"
    write(11,monformat) s(1:5),a
    Ehouarn

    PS: "néo-informaticiens" ? Par opposition à "paléo-informaticiens" ?

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut !

    Ehouarn a tout à fait raison en ce qui concerne les parenthèses manquantes (pour le reste aussi d'ailleurs!). Désolé pour ce lapsus!

    Jean-Marc Blanc

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut
    MERCI

    Vos réponses m'ont bien aidé.
    Concernant les formats, merci de m'avoir détaillé à quoi correspond A, I...


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction write(11,.) write(100,.)
    Par sandra3434i dans le forum Fortran
    Réponses: 5
    Dernier message: 14/02/2008, 14h38
  2. random access file et fonction write
    Par john123 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 22/08/2007, 00h25
  3. popup et/ou fonction write:chargement incomplet
    Par meechoko dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/07/2007, 09h47
  4. Réponses: 4
    Dernier message: 18/12/2006, 22h43
  5. Saut de ligne dans la fonction write
    Par zmaster dans le forum Delphi
    Réponses: 2
    Dernier message: 09/12/2006, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo