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 :

Ecriture formatée d'un tableau de taille variable


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 30
    Par défaut Ecriture formatée d'un tableau de taille variable
    Bonjour à tous,
    Mon problème est très simple : j'aimerais écrire des tableaux dans un fichier de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    do i=1,n
        write(50,*) (a(j,i),j=1,n)
    enddo
    ou directement comme ça :

    Mais en spécifiant un format différent de *. Or "a" n'a pas un taille donnée, donc je ne peux pas la deviner avant et écrire (10e10.3) par exemple. Quelqu'un a-t-il une idée ?
    Merci d'avance

  2. #2
    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
    En fouillant le forum, tu trouveras certainement une réponse élaborée, mais voici les 2 principales solutions :

    Solution très simple

    Le nombre d'éléments à écrire et le nombre d'éléments prévu par le format n'ont pas à correspondre.

    Si le nombre d'éléments à écrire est plus grand que le nombre d'éléments prévu par le format, le programme va « boucler » sur le format, en introduisant une nouvelle ligne à chaque itération (si ma mémoire est fidèle).

    Le cas intéressant pour toi est l'autre, si le nombre d'éléments à écrire est plus petit que le nombre d'éléments prévu par le format. Le programme va alors simplement arrêter d'écrire au premier élément du format n'ayant pas de correspondance dans la liste des variables.

    Ton exemple devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    do i=1,n
        write(50,'(9999e10.3)') (a(j,i),j=1,n)
    enddo
    Solution compliquée

    Tu dois déclarer une variable caractère pour stocker le format et utiliser un write pour générer le format. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    character (20) :: FmtRequis
    ...
    write(FmtRequis,'(a,i0,a)') '(',n,'e10.3)'
    do i=1,n
        write(50,FmtRequis) (a(j,i),j=1,n)
    enddo

  3. #3
    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
    Salut!
    Il y a encore une solution (compliquée): jouer avec des Advance='No'.
    Jean-Marc Blanc

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 30
    Par défaut
    Merci de vos réponses, je vais effectivement opter pour la première solution simple pour l'instant (j'aurais pu essayer avant mais j'ai pas pensé ).

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

Discussions similaires

  1. sommes des cases d'un tableau de taille variable
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2008, 00h18
  2. Sélectionner tableau a taille variable
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/02/2008, 16h20
  3. [Conception] tableau de taille variable
    Par salirose dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 21/10/2006, 13h53
  4. Réponses: 1
    Dernier message: 14/09/2006, 10h53
  5. [TP] Tableau de taille variable
    Par Ripley dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/01/2006, 15h36

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