計算物理学入門

STEP.02 Fortranの基礎その2-do文


01 do文の基礎

ここでは数値計算のプログラムを書くために重要となるdo文について説明します。 do文を用いると、ある処理を何度も反復させるプログラムを書くことができます。 ここではHello,world!!と10回表示させるプログラムを例として示します。

program main
implicit none
integer i

do i=1,10
write(*,*)'Hello,World!!',i
end do

end
上のプログラムのようにdo文doから始まりend doで終わります。 そして反復させたい処理をこのdoend doの間に書きます。
上にプログラムを実行するとHello,world!!と10回書き出されますが、 具体的には次のように処理されています。

1. プログラムが実行されて処理がdo文の先頭まで到達するとi=1として (do i=1,10と書かれているので)end doまでに書かれた処理が行われます。
2. end doまで処理が到達するとiに1だけ足されて(i=2となって)do文の先頭に処理が戻ります。
3. 再びdoからend doまでの処理行い、iにさらに1を加えて先頭に戻ります。
4. 3.の操作をiが10になるまで繰り返します。(do i=1,10より)

上のサンプルプログラムをコンパイル・実行すつとHello,wirld!!と10回出力されるのに加えて、 その右側にiの値が1から10まで変化して出力されるので、ループの制御変数であるiの値が変化していく様子が確認できます。

次はこのdo文を使って実際に計算を行ってみます。

02 自然数の和の計算-do文

do文の基本的な書き方を学んだので、次はこれを利用して計算をしてみましょう。 下に書いたサンプルプログラムは1から10までの自然数の和を計算するプログラムです。

program main
implicit none
integer i,n

n=0

do i=1,10
n=n+i
end do
write(*,*)'sum = ',n

end
上のプログラム中の中で1点注意するところがあります。 それはn=n+1と書かれたところです。 この文中イコール(=)は等式を意味しているのではなく代入の意味で使われています。 具体的には、はじめnに入っていた数にiを足した数をnにしまうことを意味しています。 上のプログラムではこの文がdo文で繰り返されて、 nに1から10までの数が足しこまれていき、最終的に1から10までの自然数の和が計算されます。
このような和の計算は、後で数値的に積分を行うときにも重要となります。


<前|もくじ|次>