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 :

valeurs non affichées dans un fichier - programme de tri


Sujet :

Fortran

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut valeurs non affichées dans un fichier - programme de tri
    Bonjour à tous,

    J'ai écris un simple programme qui fait le tri et je ne sais pas ce que j'ai fait de faux .
    J'ai mis le tri en commentaires, parce que dejà dès le début du programme je n'arrive pas à afficher les valeurs dans le fichier... Pourriez-vous m'aider svp?
    Voici mon programme :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
             integer :: n =20
     
    	  double precision, dimension(2000) :: X
              double precision, dimension(2000) :: Y  
     
     
       open(16,file='test1.dat',status='unknown',access='append')
       open(17,file='test2.dat',status='unknown')
       open(15,file='test3.txt',status='unknown')
     
    	  do i=1,n
                 read(16,'(f11.3,es10.3,a3,a3)',end=100)X(i),Y(i)
              end do
     
     100      continue
     
              do i=1,n
              write(17,*)X(i),Y(i)
    	  enddo
     
     !         do k=1,n
     !             do h=k+1, n+1
    !	      write(*,*)'k',k
    !	      write(*,*)'h',h
    !                   if(X(h) .gt. X(h+1)) then
    !                   col_1=X(h)
    !                   X(h)=X(h+1)
     !                  X(h+1)=col_1
    !                   col_2=Y(h)
    !		    Y(h)=Y(h+1)
    !		    Y(h+1)=col_2		    
     !                  endif
     !             enddo
     !        enddo
     
    !     	do i = 1, n
    ! 	     write(15,*)X(i),Y(i)        
    !	end do 
     
    	close(15)
    	close(16)
    	end program

  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
    Points : 1 346
    Points
    1 346
    Par défaut
    Ton fichier de données en entrée est le fichier 16, mais tu ouvres ce fichier avec l'option « append ». Cette dernière sert à ouvrir un fichier en écriture pour ajouter des nouvelles lignes à la fin.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour Sylvain,

    merci beaucoup pour votre réponse

    Au fait je copie des fichiers qui existe déjà dans mon répertoire dans le 16 et je fais read pour utiliser les données là dessus. Je fais Append pour copier tous les fichiers dans écraser les valeurs.

    Mais même quand j'enlève le Append pour tester, les valeurs ne s'affichent pas (

  4. #4
    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
    Points : 1 346
    Points
    1 346
    Par défaut
    La boucle de lecture ne te permet pas de savoir combien de données ton programme a lues.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         n = 20
         ...
         do i=1,n
              read(16,'(f11.3,es10.3,a3,a3)',end=100)X(i),Y(i)
         enddo
     
    100  continue
    Cette boucle arrête après 20 itérations, ou si la fin du fichier est atteinte, mais tu ne le sais pas. Tu devrais ajouter un compteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         n = 20
         ...
         NbLu = 0
         do i=1,n
              read(16,'(f11.3,es10.3,a3,a3)',end=100)X(i),Y(i)
              NbLu = NbLu + 1
         enddo
    100  continue
         write(*,*)'Nombre de données lues:',NbLu
         ...

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    c'est bon c résolu ... au fait c'était à l'ouverture du fichier
    Sylvain vs aviez raison

    merci bcp à vs deux


    Citation Envoyé par Sylvain Bergeron Voir le message
    La boucle de lecture ne te permet pas de savoir combien de données ton programme a lues.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         n = 20
         ...
         do i=1,n
              read(16,'(f11.3,es10.3,a3,a3)',end=100)X(i),Y(i)
         enddo
     
    100  continue
    Cette boucle arrête après 20 itérations, ou si la fin du fichier est atteinte, mais tu ne le sais pas. Tu devrais ajouter un compteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         n = 20
         ...
         NbLu = 0
         do i=1,n
              read(16,'(f11.3,es10.3,a3,a3)',end=100)X(i),Y(i)
              NbLu = NbLu + 1
         enddo
    100  continue
         write(*,*)'Nombre de données lues:',NbLu
         ...

Discussions similaires

  1. Valeur du recordset non affichée dans formulaire
    Par diombo dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/10/2013, 15h59
  2. Intégrer des fichiers .java non compilés dans un autre programme
    Par getrude dans le forum EDI et Outils pour Java
    Réponses: 18
    Dernier message: 20/04/2012, 16h59
  3. Valeur non affichée dans un formulaire
    Par nicolasferraris dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/04/2009, 08h55
  4. Valeur non trouvé dans une requète SQL
    Par Jeankiki dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/12/2006, 16h36
  5. Choisir la page a afficher dans un fichier PDF
    Par PimpW dans le forum Delphi
    Réponses: 3
    Dernier message: 01/09/2006, 16h07

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