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 :

[Fortran 95] Initialiser un tableau et l'afficher avec un format (i,j,val)


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut [Fortran 95] Initialiser un tableau et l'afficher avec un format (i,j,val)
    Bonjour,
    Voila je suis débutant dans l'utilisation du langage FORTRAN 95 et je souhaite initialiser un tableau 5*5 à l'aide d'un fichier txt contenant une colonne i (ligne), j (colonne), et val (valeur dans la case du tableau (i,j).
    J'arrive à ouvrir le fichier .txt mais je ne sais pas comment l'afficher dans mon programme ( en respectant la mise en page ligne et colonne).
    Merci de me répondre ou de me demander plus de précision pour m'aider .

  2. #2
    Membre émérite
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Par défaut
    Si je comprend bien ton fichier est de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    1 1 3.2
    1 2 2.3
    ...
    i j valeur
    ...
    5 5 8.2
    Tu as une matrice 5x5 donc 25 éléments, donc pour lire la matrice tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    integer,parameter::n=5   ! dimension de ta matrice
    integer::i,j,k
    double precision,dimension(n,n)::matrice
     
    open(10,file="ton fichier")
     
    Do k=1,n*n
      read(10,*)i,j,matrice(i,j)
    Enddo
     
    ! puis pour l'afficher
    Do i=1,n
      write(*,"(5F8.3)")(matrice(i,j),j=1,n)
    Enddo
     
    ! change le format en fonction de test valeurs

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    Merci, j'arrive a affiché le fichier texte qui rempli entièrement le tableau.
    Mais dans mon cas je dois seulement remplir les cases bordures de mon tableau (et de mettre des zéros aux autres cases).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    1 2 1
    1 3 6
    1 4 10	
    1 5 5
    1 6 2
    2 1 1
    2 7 9
    3 1 9
    3 7 2
    4 1 5
    4 7 5
    5 1 10
    5 7 9
    6 2 6
    6 7 1
    7 2 9
    7 3 2
    7 4 2
    7 5 5
    7 6 1
    mon tableau est en fait un plateau de dimensions 7*7 mais on remplit toutes les cases bordures du plateau afin de délimiter un plateau 5*5.
    J'arrive a affiché mon plateau mais je voudrais savoir si il y avait un moyen d'aligner parfaitement les lignes et les colonnes, en effet j'ai un décalage due à ma valeur 10.

  4. #4
    Membre émérite
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Par défaut
    Dans ce cas tu as un problème de format !

    Avec un format ix (où x est un nombre de colonne) l'entier est écrit sur x colonnes en commençant par la droite. Normalement ça devrait résoudre ton problème. Essaye par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write(*,"(3i5)")i,j,matrice(i,j)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    Merci beaucoup j'ai enfin pu afficher le plateau correctement.
    L'écriture avec 7i3 ma permis d'afficher mes 7 colonnes parfaitement alignés .

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut bonjour en fait je voudrai minimiser une fonction sur fortran et jarrive tjs pas.si
    Citation Envoyé par Ladgalen Voir le message
    Si je comprend bien ton fichier est de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    1 1 3.2
    1 2 2.3
    ...
    i j valeur
    ...
    5 5 8.2
    Tu as une matrice 5x5 donc 25 éléments, donc pour lire la matrice tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    integer,parameter::n=5   ! dimension de ta matrice
    integer::i,j,k
    double precision,dimension(n,n)::matrice
     
    open(10,file="ton fichier")
     
    Do k=1,n*n
      read(10,*)i,j,matrice(i,j)
    Enddo
     
    ! puis pour l'afficher
    Do i=1,n
      write(*,"(5F8.3)")(matrice(i,j),j=1,n)
    Enddo
     
    ! change le format en fonction de test valeurs

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/01/2006, 22h34
  2. initialiser un tableau 2D dans le main
    Par miminou dans le forum C++
    Réponses: 5
    Dernier message: 20/12/2005, 10h35
  3. Réponses: 11
    Dernier message: 09/11/2005, 13h59
  4. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13
  5. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30

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