Fortranプログラミング入門

Fortranプログラミング入門
-反復処理(1)-
関根 晃太
反復処理(do文)
☆文法 do 変数=始値, 終値, 刻み幅
繰り返し実行したい文
end do
・始値から終値まで、変数が刻み幅分増加ながら
繰り返し実行
・刻み幅は省略可能.省略した場合,刻み幅は1.
P-1
反復処理(do文)
☆文法 do 変数=始値, 終値, 刻み幅
繰り返し実行したい文
end do
プログラム
integer :: i
do i=1, 10
write(*,*) i
end do
結果
1
2
3
・・・
10
プログラム
integer :: i
do i=1, 10, 0.1
write(*,*) i
end do
結果
1
1.1
1.2
・・・
9.8
9.9
10
P-2
反復処理(do文)
☆文法 do 変数=始値, 終値, 刻み幅
繰り返し実行したい文
end do
変数=始値
変数<=終値
偽
真
繰り返し実行
変数=変数+刻み幅
P-3
例題1
1から100までを表示するプログラムを作成せよ.
program disp100
implicit none
integer :: i
do i=1, 100
write(*,*) i
end do
stop
end program disp100
P-4
課題1
整数型の変数nを宣言し,read文で値を入力せよ.
そのときnの階乗を求め,表示せよ.プログラム名は
dofact.f90とせよ.
nの値がある一定
以上だと正しい
結果じゃない!?
整数型の上限値
やオーバーフロー
と関係してる!
P-5
反復処理(do while文)
☆文法 do while (条件式)
繰り返し実行したい文
end do
・条件式は論理型になるように関係演算子や論理演算
子を用いて記述する
P-6
反復処理(do while文)
☆文法 do while (条件式)
繰り返し実行したい文
end do
プログラム
integer :: i
i=1
do while(i<=10)
write(*,*) i
i=i+1
end do
結果
1
2
3
・・・
10
プログラム
integer :: i
i=1
do while(i<=10)
write(*,*) i
i=i+0.1
end do
結果
1
1.1
1.2
・・・
9.8
9.9
10
P-7
反復処理(do while文)
☆文法 do while (条件式)
繰り返し実行したい文
end do
条件式
偽(.false.)
真(.true.)
繰り返し実行
P-8
例題2
1から100までを表示するプログラムを作成せよ.
但し,do while文を使え.
program disp100
implicit none
integer :: I
i=1
do while(i<=100)
write(*,*) I
i=i+1
end do
stop
end program disp100
P-9
課題2
整数型の変数nを宣言し,read文で値を入力せよ.
そのときnの階乗を求め,表示せよ.但し,do while文を
使え.プログラム名はwhilefact.f90とせよ.
nの値がある一定
以上だと正しい
結果じゃない!?
整数型の上限値
やオーバーフロー
と関係してる!
P-10
多重ループ
ループの中にループを記述することができる!
例えば…
do
do
end do
end do
do
do
end do
do
end do
end do
do
do
do
end do
end do
end do
do
do
do
end do
end do
do
end do
end do
P-11
課題3
変数n,mを宣言し,1から9まで値を変化させ,九九の計
算をする.さらに,変数ansを宣言し,毎回read文でansの
値を読み込む.もしn*mの値とansの値が一致していたら
Goodと表示し,一致していなかったらBadと表示せよ.
ファイル名はkukupra.f90とせよ.
九九の計算:
2重ループ
成否:if文を使おう
P-12
課題4
nを整数型,xを倍精度実数型の変数を宣言せよ.nとx
の値をそれぞれread文で読み込む.そのとき,指数関数
のテイラー展開
を計算せよ.さらに,数学関数exp(x)の値と計算した値
をそれぞれ表示し,比較せよ.ファイル名はexptay.f90と
せよ.
P-13
エクストラ課題1
n,mを整数型の変数を宣言し,正の値をread文で読み込
めるようにせよ.そのとき,組み合わせ
を計算するプログラムを作成せよ.但し,ファイル名を
comb.f90とせよ.
P-14
エクストラ課題2
課題4
nを整数型,xを倍精度実数型の変数を宣言せよ.nとxの値をそれぞれread文
で読み込む.そのとき,指数関数のテイラー展開
を計算せよ.さらに,数学関数exp(x)の値と計算した値をそれぞれ表示し,比較
せよ.
にてxを負の値にすると精度が悪くなる.xの値が負のと
き精度が良くなるように改造せよ.
ファイル名をmexptay.f90とせよ.
P-15