Saut de ligne dans "write" sous fortran !
Résolu
younexpro
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
younexpro Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
younexpro Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
salut ,
j'ai écrit un programme qui fait le produit de deux matrices et enregistre la matrice résultante dans un fichier texte .
Sauf que l'affichage n'est pas correcte , je veux un affichage de la matrice ligne par ligne et non pas tout les éléments dans la même ligne .
voilà le code sous Fortran
Bonne fin de soirée !
Et j'espère que quelqu'un pourrait me dire ce que je dois ajouter/modifier.
ps : je me demande si l'option advance=Yes/No pourrait aider ,si oui ,comment l'utiliser?
j'ai écrit un programme qui fait le produit de deux matrices et enregistre la matrice résultante dans un fichier texte .
Sauf que l'affichage n'est pas correcte , je veux un affichage de la matrice ligne par ligne et non pas tout les éléments dans la même ligne .
voilà le code sous Fortran
program produit_matrice integer :: i,j,k,n real,dimension(:,:),allocatable :: A,B,C print*,'entrez la dimension des matrices' read*,n allocate(A(n,n),B(n,n),C(n,n)) !--- saisie des matrices A et B --- ! print*,'entrez les elements de A ' do i=1,n do j=1,n read*,A(i,j) end do end do print*,'entrez les éléments de B ' do i=1,n do j=1,n read*,B(i,j) end do end do !--- calcul de la matrice C -----! do i=1,n do j=1,n C(i,j)=0 do k=1,n C(i,j)=C(i,j)+A(i,k)*B(k,j) end do end do end do do i=1,n print*,c(i,:) end do !--- saisie de la matrice C dans un fichier texte ---! open(15,file='matrix.txt',action='write',form='formatted',status='replace') write(15,*) C close(15) end program
Bonne fin de soirée !
Et j'espère que quelqu'un pourrait me dire ce que je dois ajouter/modifier.
ps : je me demande si l'option advance=Yes/No pourrait aider ,si oui ,comment l'utiliser?
A voir également:
- Saut de ligne dans "write" sous fortran !
- Partage de photos en ligne - Guide
- Comment supprimer une page sur word avec un saut de page ? - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Aller à la ligne excel - Guide
3 réponses
Bonjour,
Tu dois ecrire ta matrice dans une double boucle
!--- saisie de la matrice C dans un fichier texte ---!
open(15,file='matrix.txt',action='write',form='formatted',status='replace')
do i=1,n
do j=1,n
WRITE(15, 100, ADVANCE='NO') C(i,j)
100 FORMAT (I5)
end do
WRITE(15, *) ' '
end do
close(15)
A+
Tu dois ecrire ta matrice dans une double boucle
!--- saisie de la matrice C dans un fichier texte ---!
open(15,file='matrix.txt',action='write',form='formatted',status='replace')
do i=1,n
do j=1,n
WRITE(15, 100, ADVANCE='NO') C(i,j)
100 FORMAT (I5)
end do
WRITE(15, *) ' '
end do
close(15)
A+
Salut ca affiche une erreur au niveau de la ligne ou t'as défini 100 le format !
Du coup non c'est pas résolu , merci quand même !
Du coup non c'est pas résolu , merci quand même !
Voilà donc la solution que j'ai trouvé à la fin
Je rappelle que l'objectif est réaliser un code fortran qui fait le produit de deux matrices et enregistre la matrice résultante dans un fichier texte !
Bonne fin de journée !
Je rappelle que l'objectif est réaliser un code fortran qui fait le produit de deux matrices et enregistre la matrice résultante dans un fichier texte !
program produit_matrice integer :: i,j,k,n real,dimension(:,:),allocatable :: A,B,C CHARACTER(99) :: FMT print*,'entrez la dimension des matrices' read*,n allocate(A(n,n),B(n,n),C(n,n)) !--- saisie des matrices A et B --- ! print*,'entrez les elements de A ' do i=1,n do j=1,n read*,A(i,j) end do end do print*,'entrez les éléments de B ' do i=1,n do j=1,n read*,B(i,j) end do end do !--- calcul de la matrice C -----! do i=1,n do j=1,n C(i,j)=0 do k=1,n C(i,j)=C(i,j)+A(i,k)*B(k,j) end do end do end do do i=1,n print*,c(i,:) end do !--- saisie de la matrice C dans un fichier texte ---! open(15,file='matrix.txt',action='write',form='formatted',status='replace') write(FMT,'(a,i0,a,i0,a,i0,a)')'(',size(C,dim=2),'f',50,'.',10,')' do i=1,n write(15,trim(adjustl(FMT)))C(i,:) end do end program
Bonne fin de journée !