Bonjour,

ma question est très basique

Soit ce programme fortran qui remplit le tableau MT

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
program MatrixTest
 
implicit none
integer :: nbrx,nbrz,iter,i,j,k,n
real*8, allocatable :: MT(:,:)
 
n=5
iter=-1
allocate(MT(0:1,0:n*n+1))
do j=0, n
  do i=0, n
  iter=iter+1
  MT(0,iter)=i
  MT(1,iter)=j
  enddo
enddo
 
end program
cela donne si je lis élément/élément :

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
1           1   0.0000000000000000     
           1           2   0.0000000000000000     
           1           3   0.0000000000000000     
           1           4   0.0000000000000000     
           1           5   0.0000000000000000     
           2           1   2.0000000000000000     
           2           2   3.0000000000000000     
           2           3   4.0000000000000000     
           2           4   5.0000000000000000     
           2           5   0.0000000000000000     
           3           1   0.0000000000000000     
           3           2   0.0000000000000000     
           3           3   0.0000000000000000     
           3           4   0.0000000000000000     
           3           5   1.0000000000000000     
           4           1   3.0000000000000000     
           4           2   4.0000000000000000     
           4           3   5.0000000000000000     
           4           4   0.0000000000000000     
           4           5   1.0000000000000000     
           5           1   0.0000000000000000     
           5           2   0.0000000000000000     
           5           3   0.0000000000000000     
           5           4   1.0000000000000000     
           5           5   1.0000000000000000
Je comprends pas l'indexage puisque les valeurs de M entrent soit dans la 1ere ligne M(0,iter), soit dans la 2eme ligne M(0,iter) ?

Comment se fait il que l'indexage suit la définition des i et j alors qu'il devrait suivre la définition imposée par (0,1) et iter et que i et j devraient être les valeurs ?

Pour moi, MT devrait être (pour les 2 premières occurrences de j:

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
43
 
j=0, 
 
i=0 
MT(0,0)=0
MT(1,0)=0
i=1
MT(0,1)=1
MT(1,1)=0
i=2
MT(0,2)=2
MT(1,2)=0
i=3
MT(0,3)=3
MT(1,3)=0
i=4
MT(0,4)=4
MT(1,4)=0
i=5
MT(0,5)=5
MT(1,5)=0
 
j=1
i=0
MT(0,6)=0
MT(1,6)=1
i=1
MT(0,7)=1
MT(1,7)=1
i=2
MT(0,8)=2
MT(1,8)=1
i=3
MT(0,9)=3
MT(1,9)=1
i=4
MT(0,10)=4
MT(1,10)=1
i=5
MT(0,11)=5
MT(1,11)=1
 
ETC..
je vois pas le rapport avec le résultat au dessus..

Désolé je viens de matlab et je ne comprends pas du tout et il doit avoir un truc important et basique que j'ai pas pigé.

Merci d'avance