例題2 データを読む

3つの実数の値を読み込んで、その平均を求めるプログラムを作成する。

 例題1のプログラム例 は、3つの実数 11.5, 25.7, 3.5 の平均を求めるものです。別の数値について計算したい時には、3つの値を代入している文をそのつど書き変えて、翻訳しなおし実行しなければなりません。
 プログラム例を「3つの任意の実数値について計算できるようにする」には、プログラムの中に直接値を記述するのではなく、プログラムを実行する時に値を読み込むようにします。

 例題2のフローチャートとプログラムの例を示します。

プログラム
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
c Example 2     データを読む
c  機械工学科 1年  xxxxxxx  my name
c         Filename = reidai02.f
      real a1,a2,a3,asum,av
      write(*,*) ' 3つの実数の平均を求める '
      write(*,*) ' 実数を3つ、カンマまたはブランク'
     *                     ,'で区切って入力する'
      read(*,*) a1,a2,a3
      asum=a1+a2+a3
      av=asum/3.0
      write(*,*) ' a= ',a1,a2,a3,' 平均 ', av
      stop
      end


 例題2のプログラム例について説明します。

 5行目から8行目は例題1の3つの代入文の代わりに挿入された部分です。

5行目       write(*,*) ' 3つの実数の平均を求める '
6行目       write(*,*) ' 実数を3つ、カンマまたはブランク'
7行目      *                      ,'で区切って入力する'
8行目       read(*,*) a1,a2,a3

 5行目と6行目(7行目は継続行)のwrite文は出力並び(変数などをカンマ ,で区切って並べたもの)に記述された変数などの値を出力します。この例では ' で囲まれた文字列

  3つの実数の平均を求める 
  実数を3つ、カンマまたはブランクで区切って入力する
を画面に出力します。このwrite文は、このプログラムの内容と、次のread文で何を入力するのかを示す目的で入れたものです。

 8行目のread文は入力並び(変数をカンマ ,で区切って並べたものでここでは a1,a2,a3 )に記述された変数に値を読み込みます。この例ではキーボードから値が入力されるのを待ちます。



Fortranの文法参照