級数の和、数値積分と言った時には変数の値を少しづつ変えながら、同じ操作を 繰り返すことが必要になる。この場合に便利なのが 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