級数の和、数値積分と言った時には変数の値を少しづつ変えながら、同じ操作を 繰り返すことが必要になる。この場合に便利なのが do 構文によ る繰り返しである。
文法:
do
実行文の集合(do ブロック)
end do
do 変数、 始値 終値 増分(全て整数型)。増分値は の時、省略可。
最初は として do ブロックを実行し、end do まで来た時、次の文を実 行するのではなく、最初の do 文のところに戻る。次に変数 の値を だけ増やし()、再び do ブロックの実行を行なう。以下この操作を となるまで繰り返す。終了条件に達すると、end do 文の次の実行文へ 移る。
例:
integer n,n2 real r1 c do n=1,10 n2=n*n r1=1.0/n write(*,*) n,n2,r1 end do c end
例2:指数関数のテイラー展開
(1) |
real x,x1,sum integer n,max c read(*,*) x,max sum=1.0 x1=1.0 do n=1,max x1=x1*x/n sum= sum + x1 end do c write(*,*) sum,exp(x),sum/exp(x) c end
例3:双曲線関数の無限乗積
(2) |
real x,pi,prod integer n,max c pi = 4.0*atan(1.0) read(*,*) x,max prod=1.0 do n=1,max prod= prod*(1.0+x*x/(n*n)) end do c write(*,*) prod,sinh(pi*x)/(pi*x),prod/(sinh(pi*x)/(pi*x)) c end