dポイントプレゼントキャンペーン実施中!

四面体の4頂点の3次元座標を設定するプログラムを例にならって以下のように書いたのですが、doループの内容がいまいちよくわかりません。p(1:3,m),p(1:3,n)が表されている値は理解できるのですが、出力されたファイルの内容が2行3列の答えが6つあって、なぜそのように答えが出てくるのかがわかりません。教えて下さい。よろしくお願いします。
rogram list2_11
implicit none
integer :: m, n, fno = 10
real(8) p(3,4)
call random_seed
call random_number(p(1:3,1:4))
open(fno, file = 'tetra.d')
do m = 1, 3
do n = m+1, 4
write(fno,*) p(1:3,m)
write(fno,*) p(1:3,n)
write(fno,*) ''
enddo
enddo
close(fno)
end program list2_11

A 回答 (2件)

do m = 1, 3


do n = m+1, 4
enddo
enddo
はm,nを書き下してみると
m=1, n=2
m=1, n=3
m=1, n=4
m=2, n=3
m=2, n=4
m=3, n=4
となって意図通りですよね。

この回答への補足

なるほど。doループの内容は理解できました。ありがとうございました。
もう一つお聞きしたいのですが、
write(fno,*) p(1:3,m)
write(fno,*) p(1:3,n)
のpの括弧内の(1:3,m)は1列から3列、m行を表しているのでしょうか?
多次元配列の表現内容をまだいまいち理解できてないのでよくわかりません。
教えて下さい。よろしくお願いします。

補足日時:2009/10/17 21:29
    • good
    • 0

a(1:3, m) は「a(1, m), a(2, m), a(3, m) からなる配列」です.

    • good
    • 0
この回答へのお礼

ありがとうございました。実行結果の表示が行列の表示ではなかったのでわからなくなっていたんだと思います。配列は、行列とは限らないんですよね。助かりました。

お礼日時:2009/10/18 10:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!