平成7年度 春期 第二種 午後 問13

                        [更新日]1995.06.20
問13 次のFORTRANプログラムの説明及びプログラムを読んで、設問1,2 に答えよ。 [プログラムの説明] 図1に示す半径Rcmの球形の容器にVmlの水を入れたときの水の深さh cmを、線形補間によって求めるプログラムである。 (1) 半径Rcmの容器に深さxcmまで水を入れたときの水の容量Fmlは、 次式で定義される。 x F(x) = πx^2(R-──) , 0≦x≦2R 3 (2) 図2に示すように、関数y=F(x)のグラフは、区間0≦x≦2Rにおいて、 y=Vのグラフと一度だけ交わる。 その交点のx座標hが、Vmlの水を容器に入れたときの水の深さhcm である。 (3) 線形補間を利用した解の計算は、次の手順による。 1. 2点(a,F(a))と、(b,F(b))を通る直線によって補間した深さ hの近似値cは、 b−a c = a+───────(V−F(a)) F(x)−F(a) で与えられる(図3参照)。 2. F(c)<Vのときは、cを新たにaとする。 F(c)≧Vのときは、cを新たにbとする。 3. |F(c)-V|>εならば 1に戻る。さもなければcを解とする。 ここに、εは計算精度を指定する定数である。 (4) R=10とする。 (5) プログラムを実行した印字結果は、図4のとおりである。 ┌─────────────────────────────┐ │ .0000 20.0000 4.7746 -397.789 602.21 │ │4.7746 20.0000 6.4633 29.633 1029.63 │ │4.7746 6.4633 6.3462 -2.392 997.61 │ │6.3462 6.4633 6.3550 -.011 999.99 │ │6.3550 6.4633 6.3550 .000 1000.00 │ │h= 6.35cm V= 1000ml │ │ │ │ .0000 20.0000 7.1620 -273.260 1226.74 │ │7.1620 20.0000 8.3463 79.614 1579.61 │ │7.1620 8.3463 8.0791 -1.646 1498.35 │ │8.0791 8.3463 8.0845 -.008 1499.99 │ │h= 8.085cm V= 1500ml │ │ │ │ .0000 20.0000 9.5493 -47.102 1952.90 │ │9.5493 20.0000 9.7695 21.979 2021.98 │ │9.5493 9.7695 9.6994 -.011 1999.99 │ │9.6994 9.7695 9.6994 .000 2000.00 │ │h= 9.699cm V= 2000ml │ └─────────────────────────────┘        図4 印字結果 設問1 プログラムと印字結果を分析し、プログラム中の[ ]に入れる 正しい答えを、解答群の中から選べ。 解答群 ア IV.LE.2500 イ IV.LT.2000 ウ IV.LT.2500 エ 0.1 オ 0.01 カ 0.001 キ C.GT.B ク C.LT.A ケ FC.GT.IV コ FC.LT.IV 設問2 プログラムと印字結果を分析し、プログラムの書換えに関する次の 記述中の[ ]に入れる正しい答えを、解答群の中から選べ。 行番号13を A=R に書き換えてプログラムを実行したとき、hについての印字は、書換え前と [ ]結果が得られた。 解答群 ア すべて異なる イ 一部異なる ウ すべて同じ [プログラム] 01 IV=500 02 DO WHILE([ a ]) 03 IV=IV+500 04 CALL TAKASA(IV,X) 05 WRITE(*,100)X,IV 06 100 FORMAT(8X,'h=',F6.3,'cm V=',I5,'ml'/) 07 END DO 08 END 09 10 SUBROUTINE TAKASA(IV,C) 11 DATA R/10.0/ 12 F(X)=3.141592654*X*X*(R-X/3.0) 13 A=0.0 14 B=R+R 15 FA=F(A) 16 FB=F(B) 17 FC=FA 18 C=A 19 DO WHILE(ABS(FC-IV).GT.[ b ]) 20 C=A+(IV-FA)*(B-A)/(FB-FA) 21 FC=F(C) 22 WRITE(*,200) A,B,C,FC-IV,FC 23 200 FORMAT(7X,3F10.4,F10.3,F10.2) 24 IF([ c ])THEN 25 A=C 26 FA=FC 27 ELSE 28 B=C 29 FB=FC 30 ENDIF 31 END DO 32 END
戻る 次頁:問14