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 :

[Débutant] Write et format


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut [Débutant] Write et format
    Bonjour,

    J'y connais rien en FORTRAN et j'ai un petit soucis de compréhension au sujet de la fonction write. J'ai le bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    write (21, 1000) var1, var2, var3, var4, var5
    1000 format(5g16.9)
    var1 est un entier
    var2 est un entier
    var3 est un float
    var4 est un float
    var5 est un entier

    Je comprends la syntaxe de la fonction write mais j'ai du mal avec le formatage. Ma question est donc : Qu'est-ce que je suis supposé obtenir dans le fichier en sortie dans le cas où les variables sont initialisées comme suit :

    var1 = 3
    var2 = 257
    var3 = 0.0025
    var4 = 0.0015
    var5 = 5

  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 : 84
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut write et format
    Salut.

    Le descripteur G est une horreur inventée semble-t-il par IBM. Pendant longtemps, ça a été un délimiteur "secret" qui existait dans le compilateur mais n'était documenté nulle part. Maintenant que le Fortran a été normalisé, on sait un peu mieux ce que c'est. Je te résume ce que j'ai trouvé dans ma documentation:

    Le descripteur G est en principe destiné à traiter des variables de type réel, mais il peut être utilisé pour n'importe quel autre type intrinsèque de données. Il prend la forme

    Gw.d[Ee]

    Utilisé avec des données entières, logiques ou caractère, il se comporte comme Iw, Lw et Aw, d et e n'ayant aucun effect.

    En écriture, la valeur du nombre réel est arrondie à d chiffre signigicatifs et justifiée à droite d'un champ de w caractères, d'une manière qui dépend de la valeur du nombre.

    Exemples:

    Valeur Format Sortie avec G Format Sortie avec F
    0.01234567 G13.6 ^0.123457E-01 F13.6 ^^^^^0.012346
    -0.12345678 G13.6 -0.123457^^^^ F13.6 ^^^^-0.123457
    1.23456789 G13.6 ^^1.23457^^^^ F13.6 ^^^^^1.234568
    12.34567890 G13.6 ^^12.3457^^^^ F13.6 ^^^^12.345679
    123.45678901 G13.6 ^^123.457^^^^ F13.6 ^^^123.456789
    -1234.56789012 G13.6 ^-1234.57^^^^ F13.6 ^-1234.567890
    12345.67890123 G13.6 ^^12345.7^^^^ F13.6 ^12345.678901
    123456.78901234 G13.6 ^^123457.^^^^ F13.6 123456.789012
    -1234567.89012345 G13.6 -0.123457E+07 F13.6 *************

    C'est tout ce que je peux te dire, mais, personnellement, je ne l'utilise jamais.

    Bonne chance
    Jean-Marc Blanc

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut
    Ok, merci beaucoup pour cette première explication. Ca va me permettre d'avancer un peu plus.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    salut
    tu peut utiliser le format suivant pour afficher les variables telles qu'elle sont initialisées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1000 format(2I10,2E6.4,I10)
    (je n'ai pas vérifié...)
    ça signifie écrire 2 entiers de 10 chiffres, suivis de 2 réels de 6 caractères et avec 4 décimales, suivi d'un entier de dix chiffres.
    Il me semble que si l'entier fait moins de 10 chiffre, fortran doit ajouter des espaces avant la valeur

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    Il me semble que si l'entier fait moins de 10 chiffre, fortran doit ajouter des espaces avant la valeur
    oui, et de mémoire il faut mettre I10.10 pour forcer l'ajout de 0 devant l'entier, mais à vérifier.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    Citation Envoyé par afrancisco Voir le message
    oui, et de mémoire il faut mettre I10.10 pour forcer l'ajout de 0 devant l'entier, mais à vérifier.
    Oui, mais c'est réservé à F90 ou plus.

Discussions similaires

  1. Questions débutant : Problème de format
    Par Yachas dans le forum Général Python
    Réponses: 2
    Dernier message: 06/09/2011, 14h19
  2. Réponses: 2
    Dernier message: 16/12/2008, 10h00
  3. [Struts] bean:write et format
    Par jakouz dans le forum Struts 1
    Réponses: 4
    Dernier message: 04/09/2006, 18h07
  4. [débutant]Probléme de format de date
    Par Greg84 dans le forum Access
    Réponses: 2
    Dernier message: 10/08/2006, 14h31
  5. [Struts] Bean:write et format de Date
    Par Sniper37 dans le forum Struts 1
    Réponses: 2
    Dernier message: 24/03/2005, 16h36

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