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] Commande print sur un tableau


Sujet :

Fortran

  1. #1
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut [Débutant] Commande print sur un tableau
    Bonjour,
    j ai une question sur une commande pour imprimer un tableau avec indice, j ai essaye cette comande mais elle ne fonctionne pas, alors ou est le truc? Voila la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print*,(('X',i,' = ',X(i)) i=1,3)

  2. #2
    Membre régulier Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Points : 82
    Points
    82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print*,('X',i,' = ',X(i),i =1,3)
    1 - l'affichage est moche
    2 - tu te foules pas trop pour chercher...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut.

    Je me cherchais un job pour occuper ma retraite. J'ai cru que de répondre à tes questions serait un bon emploi à plein temps, mais maintenant, je me rends compte que je dois faire des tas d'heures supplémentaires!

    Quatre questions préalable:

    1) Quelle est la taille de ton tableau? S'il est petit (moins de 10 valeurs), tu l'imprimeras sur une ligne. S'il est plus grand, tu as le choix entre l'imprimer en colonne ou sur plusieurs lignes.

    2) Quel est le type des valeurs contenues dans X? Si, comme quelqu'un te l'as déjà recommandé, tu as mis un "Implicit None" au début de ton programme, tu auras un message d'erreur pour chaque variable non déclarée. Dans la suite, je supposerai que ton programme commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          Implicit None
          Integer I,N
          Real*8 X(100)
    3) Connais-tu déjà les valeurs extrêmes des nombres contenus dans X?

    4) Que comptes-tu faire avec ce que tu auras obtenu? Si tu veux seulement le contempler à l'écran, tu peux utiliser "Print * ... " ou "Write (*, ...". En revanche, si tu comptes faire quelque-chose d'utile avec tes résultats, je te recommande de les écrire dans un fichier que tu pourras relire ou imprimer avec n'importe quel éditeur. Tu devras donc définir ce fichier par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          Open (1,File='MonFichier.txt')
    Ecriture sur une seule ligne, en virgule fixe, au maximum 10 nombres, 12 positions par nombre, 3 chiffre après le point:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          Write (1,'(A4,10F12.3)') 'X = ',(X(I),I=1,N)
    Idem en virgule flottante, si tes nombres sont très grands, très petits, ou si tu ne sais pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          Write (1,'(A4,10E12.3)') 'X = ',(X(I),I=1,N)
    J'aime bien la notation "ingénieur", mais je ne suis pas sur qu'elle existe en Fortran 77
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          Write (1,'(A4,10EN12.3)') 'X = ',(X(I),I=1,N)
    Ecriture en colonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          Write (1,'(4X,A4)') 'X = '
          Do I=1,N
            Write (1,'(F12.3') X(I)
          End Do
    Ecriture sur des lignes de 10 nombres au maximum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          Write (1,'(4X,A4)') 'X = '
          Write (1,'(10F12.3)') (X(I),I=1,N)
    Exerce...
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  4. #4
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut.

    Je me cherchais un job pour occuper ma retraite. J'ai cru que de répondre à tes questions serait un bon emploi à plein temps, mais maintenant, je me rends compte que je dois faire des tas d'heures supplémentaires!
    Merci Jean Marc pour ta gentillesse, en effet nous sommes des numericiens (malgre que j ai qq pb en programation)
    Citation Envoyé par FR119492 Voir le message
    Quatre questions préalable:

    1) Quelle est la taille de ton tableau? S'il est petit (moins de 10 valeurs), tu l'imprimeras sur une ligne. S'il est plus grand, tu as le choix entre l'imprimer en colonne ou sur plusieurs lignes.
    C est un tableau provenant de la resolution d un systeme lineaire triangulaire, j ai choisit qu il soit de 3 inconnus
    Citation Envoyé par FR119492 Voir le message
    2) Quel est le type des valeurs contenues dans X? Si, comme quelqu'un te l'as déjà recommandé, tu as mis un "Implicit None" au début de ton programme, tu auras un message d'erreur pour chaque variable non déclarée. Dans la suite, je supposerai que ton programme commence par
    Implicit None
    Integer I,N
    Real*8 X(100)
    en effet ce sont des ""real"", X=(X1,X2,X3), et j ai declare' : real X(3)

    Citation Envoyé par FR119492 Voir le message

    3) Connais-tu déjà les valeurs extrêmes des nombres contenus dans X?
    oui c est 3
    Citation Envoyé par FR119492 Voir le message
    4) Que comptes-tu faire avec ce que tu auras obtenu? Si tu veux seulement le contempler à l'écran, tu peux utiliser "Print * ... " ou "Write (*, ...". En revanche, si tu comptes faire quelque-chose d'utile avec tes résultats, je te recommande de les écrire dans un fichier que tu pourras relire ou imprimer avec n'importe quel éditeur. Tu devras donc définir ce fichier par
    Open (1,File='MonFichier.txt')

    Ecriture sur une seule ligne, en virgule fixe, au maximum 10 nombres, 12 positions par nombre, 3 chiffre après le point:
    Write (1,'(A4,10F12.3)') 'X = ',(X(I),I=1,N)

    Idem en virgule flottante, si tes nombres sont très grands, très petits, ou si tu ne sais pas:
    Write (1,'(A4,10E12.3)') 'X = ',(X(I),I=1,N)

    J'aime bien la notation "ingénieur", mais je ne suis pas sur qu'elle existe en Fortran 77
    Write (1,'(A4,10EN12.3)') 'X = ',(X(I),I=1,N)

    Ecriture en colonne:
    Write (1,'(4X,A4)') 'X = '
    Do I=1,N
    Write (1,'(F12.3') X(I)
    End Do

    Ecriture sur des lignes de 10 nombres au maximum:
    Write (1,'(4X,A4)') 'X = '
    Write (1,'(10F12.3)') (X(I),I=1,N)

    Exerce...
    Jean-Marc Blanc

    Mon but est d avoire la solution sous la forme X1=..., X2=...,X3=.....

  5. #5
    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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Write (1,'(A5,F8.3,A12,F8.3,A12,F8.3)')
    * 'X1 = ',X(1),', X(2) = ',X(2),', X(3) = ',X(3)

    Ce n'est pas ce qu'ily a de plus élégant!
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  6. #6
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    Merci Jean Marc,
    Dans ce cas c est peut etre facile , mais si tu as un systeme lineaire AX=B de avec A(100,100) et X(100) , dans ce cas ta methode ne marche pas ici

Discussions similaires

  1. [WD17] Lien et commande (Onclick) sur un champ d'un tableau
    Par medhan dans le forum WinDev
    Réponses: 1
    Dernier message: 02/02/2015, 14h28
  2. Réponses: 4
    Dernier message: 01/05/2009, 19h54
  3. Réponses: 17
    Dernier message: 11/11/2008, 12h17
  4. [Débutant] Questions sur un tableau
    Par beegees dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 29/12/2006, 13h06
  5. Réponses: 3
    Dernier message: 24/09/2005, 09h34

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