do 〜 end do
サンプルプログラムNo.5 「三角関数表」
サンプルプログラムNo.6 「三角関数表」
両方とも同じ表を表示しますが、ちょっぴり考え方が違います。私は、どちらかというと上の方が好きです。
サンプルプログラムNo.7 「定期預金の利息計算」
利息は毎年小数点以下は切り捨てられます。というので、単純な計算値と異なってきます。
例えば、1万円を現在の普通預金の利息0.002%で預けても永遠に1万円のままです。
do 〜 end doの構文
do 変数 = 初期値, 判定値, 増分値
実行文
end do
また、Fortran77の標準規格では
do 文番号 整数型変数 = 初期値, 判定値, 増分値
実行文
文番号 continue
ように、文番号でdoの範囲を指定する。continue文は何もしないので、良く用いられる。
end doは、Fortran77では規格外のいわば「方言」だが、fortan90では標準規格のなっていて、ほぼずべての処理系でサポートされているので、上の書式をお勧めする(数年前までは私もこちらを使っていた)。
parameter文 (定数と変数)
- parameter文で、整数型、実数型、文字型などの定数を定義できる。
定数は実行文の中で再定義できない。
- 定数は、いわば、コンパイルの段階で、プログラムの使用している個所で、parameter文で定義している数値に置き換えられ、直接数値を書いたのと同じである。
- del = 10.0とプログラムの中で再定義はしていないが、これは立派な変数である(優秀なコンパイラーの場合勝手に変数から定数に変更して扱う場合もある)。
変数は、プログラム実行段階で変数を記憶しておく領域を用意される。
- プログラムの中に3.14とか10.0などと直接数値を書くのではなく、paramter文で
意味のある定数名をつけて利用する方が良い。
writeの構文(その2)
- write(*,*)で表示させても、残念ながらきれいな表になりません。そこで、出力書式を指定する方法があります。
- write(*,文番号)のように「文番号」が付いたformat文で指定された書式を使って出力させるという指定です。文番号 format文は、プログラム中実行部分のどこに書いても問題ありませんが、そのwrite文の直後か最後の部分かに書くといいでしょう。
- format文の詳しい意味は「8. write文の書式」で行いますが、
f6.1は少数点以下1桁で全部で6桁、f12.6は少数点以下6桁で全部で12桁、
3( )は()内を3回繰り返せという意味で、全部で4つの実数型変数の出力を指定しています。
演習問題
- nが1から10までのn、nの二乗、2乗根、3乗根の表を作れ。2乗根はsqrt(n)、3乗根はn**(1.0/3.0)で与えることができる。
2002年度 fortran 演習
担当教官:山中康裕(galapen@ees.hokudai.ac.jp)・豊田威信(toyota@lowtem.hokudai.ac.jp)