収束判定をするプログラムとして教科書112ページに記載されている例題を配列を使って書き直せ.配列の要素数は適宜定めよ.113ページのプログラムの変数をそのまま配列に置き換えたものは解答と見なしません.あくまでも112ページのアルゴリズムに従ってプログラムを作成してください. また次の事項も組み込むこと.
A(K)
を使うことになります.
Kに関するDOループ文を如何に書き換えるかがポイントとなりますが,以下のように考えると良いと思います.
青色で示した部分がポイントです.それ以外の部分は教科書通りですね.また今回提出してもらったプログラムで,赤字で示した部分が抜けていた人は減点されています.
緑色の字はプログラムの解説です(この字の部分をプログラムの中に書き込んではいけない).
PROGRAM REPORT0129
IMPLICIT NONE
INTEGER :: K
REAL A, B, EPS, X,
DIMENSION A(100),B(100)
EPS=0.00001
WRITE(*,*) 'X = '
READ(*,*) X
A(1)=X
B(1)=X/A(1)
K=1
DO WHILE(ABS((A(K)-B(K))/A(K)) > EPS) この部分で計算の精度が決まる.
A(K+1)=(A(K)+B(K))/2.0 A(K)とB(K)でXの平方根の値を見積もる部分
B(K+1)=X/A(K+1) つまりはX=A(K+1)*B(K+1)であるから...
WRITE(*,*) A(K) ここで表示されるA(K)の値を観察すれば,このプログラムの意味がわかると思います.
K=K+1 配列の要素をひとつずらす部分.この部分をDO WHILE文の直後においている人が数名いました.
END DO
C
WRITE(*,*) K
WRITE(*,*) 'Xの平方根は', A(K)
WRITE(*,*) '組み込み関数による値は', SQRT(X)
STOP
END PROGRAM FILE0129
All rights reserved.