Bonsoir à vous, lecteur.
En pleine phase de programmation intense (rédaction d'un compte rendu de tp), une idée, pour me différencier du lot (constitué de mes camarades), m'est apparu.
Faire un affichage des données un chouia plus beau que celui vu en cours (cad : write(*,*)blablabla).
Sans prétention quelconque part rapport au code en lui même, voici ce que j'ai fais :
A vu de nez, pas de différence, voir même 2 fois la même subroutine. Ce n'est pas le cas, remarquez le titre qui change (et oui ) et la 5 ligne des 2 sub. Seul la définition du tableau passé en argument change. Si la encore, créer 2 sub différentes ne posent pas de problème, j'aurai voulu savoir s'il était possible de faire un truc du genre :
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 Subroutine Afficher(Mat) implicit none integer::i character(len=16)::test character(len=3)::taille real(kind=8),dimension(:),intent(in)::Mat write(test,'(1i1)')int(size(mat)) write(taille,*)'('//test(1:1) test=taille//'f6.1)' write(*,(test))Mat end subroutine Subroutine AfficherMat(Mat) implicit none integer::i character(len=16)::test character(len=3)::taille real(kind=8),dimension(:,:),intent(in)::Mat write(test,'(1i1)')int(size(mat)/sqrt(real(size(Mat)))) write(taille,*)'('//test(1:1) test=taille//'f6.1)' write(*,(test))Mat end subroutine
En espérant que le problème eut été bien posé et bien compris, j'ose espérer qu'il y est une solution .
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 Subroutine Affichage(Mat) implicit none integer::i character(len=16)::test character(len=3)::taille !Si matrice alors real(kind=8),dimension(:,:),intent(in)::Mat !Si vecteur alors real(kind=8),dimension(:),intent(in)::Mat write(test,'(1i1)')int(size(mat)/sqrt(real(size(Mat)))) write(taille,*)'('//test(1:1) test=taille//'f6.1)' write(*,(test))Mat end subroutine
Cordialement
Partager