数値解析法及び演習 第二回

1から10までの和
  1. ファイルを用いた入出力(つづき)
  2. DOループによる反復処理
  3. 今日の宿題

今日の目標

  1. データの入出力を覚える
  2. DOループによる反復処理

今日のディレクトリ, 001009を作成してください.


[1] ファイルを用いた入出力

次のプログラムを書いてみよう.

      real*8 a,b,c

      open(1,FILE='081009_1.dat')
      open(2,FILE='081009_2.dat')

      read(1,*) a,b
      c=a+b
      write(2,*) c 

      end

また, 内容が次のファイル081009_1.datを作成してください.

2.1D0 5.4D0

以上二つのファイルが作成できたらコンパイル後実行してください.

プログラムから数値を読み込む場合, 通常はファイルから読み込ませます. キーボードから読み込ませることもできますが, そうすると入力した数値が後で判らなくなってしまうことが多いからです. また, 計算結果も通常はファイルに書き込ませます. ファイルを開くには上の例のようにopen文を用います. 書式は次の通り.

open文 open(n,FILE='ファイル名')
n 外部装置識別子(5,6を除いた整数を使う)

つづくread, write文では, 対応する番号で開かれたファイルからの読み込み, 書き込みが行われることになる.

[2] DOループによる反復処理

次のプログラムを書いてみよう.

      real*8 a,c
      integer n,i

      a=1.D0
      c=0.D0
      n=10
     
      do i=1,n
          c=c+a
      enddo
   
      write(6,*) c,n
     
      end

これは,整数iを1からnまで一つづつ増やしつつenddo文までを反復しなさいというプログラムである.フォートランでは反復計算をDOループを用いて行なう. 基本的な書き方は次の通り:

DOループ do i=m1,m2,m3
..........
enddo
i 制御変数(整数型を使う)
m1 制御変数の初期値
m2 制御変数の終値
m3 制御変数の増分(省略すると1になる)

DOループは重ねてつかうことができる. 例として:

      integer i,j

      do i=1,10
        do j=1,5
           write(6,*) i,j
	enddo
      enddo
      end

プログラムを作成し実行せよ. iとjがどのように増えていくか着目すること.


[3] 今日の宿題

問題のプログラム及び回答(数値)を城野,朝倉にメールで送ること.

〆切:10月14日(火曜日)


日程表へ戻る <<