X = -1.0, -0.8, -0.6, ・・・, 0.8, 1.0
のそれぞれについてEXP(X)
を,
またK = -180, -144, -108, ・・・,144, 180°
のそれぞれにについてCOS(K)
を計算し,X, EXP(X), K, COS(K)
を表示するプログラムを作成せよ.ただし,DO
文は一度だけ使うものとする(ヒント:X
の増分とK
の増分をそれぞれ考えてみよ)
I, X, EXP(X), K, COS(K)
-10 -1.00000 0.36788 -180.0 -1.00000
-8 -0.80000 0.44933 -144.0 -0.80902
-6 -0.60000 0.54881 -108.0 -0.30902
-4 -0.40000 0.67032 -72.0 0.30902
-2 -0.20000 0.81873 -36.0 0.80902
0 0.00000 1.00000 0.0 1.00000
2 0.20000 1.22140 36.0 0.80902
4 0.40000 1.49182 72.0 0.30902
6 0.60000 1.82212 108.0 -0.30902
8 0.80000 2.22554 144.0 -0.80902
10 1.00000 2.71828 180.0 -1.00000
PROGRAM FILE_no6
IMPLICIT NONE
INTEGER :: I
REAL :: X, K, Y, RAD
RAD=4.0*ATAN(1.0)/180.0
DO I=-10,10,2
X=REAL(I)/10.0
K=REAL(I)*18.0
Y=K*RAD
WRITE(*,*)I,X,EXP(X),K,COS(Y)
END DO
STOP
END PROGRAM FILE_no6
N
を読み込み,フィボナッチ数列の第N
項を求め,結果を逐次ディスプレイに表示するプログラムを作成し,プログラムと実行結果をTEAMSに
送って下さい.
DO I=1.0,N,1.0
とプログラムしていましたが変数I
は整数型の変数ですので,始値,刻みに小数点以下の数値を書くことに意味はありません.今後は注意してください.
DO I=1, N-2,1
とDO
文を書いている人がかなりいましたが,これでも正解です.
DO
文はプログラム解答例の様に考えた方が自然ですね.
変数の置き方は色々ありますが,一番考えやすいと思われる(?)例を示しておきます.
PROGRAM report_no6
IMPLICIT NONE
INTEGER :: I, N
REAL :: OLD, LAST, NEW
OLD = 1.0
LAST = 1.0
NEW = 0.0
WRITE(*,*) '求めたい項数を入力してください'
READ(*,*) N
WRITE(*,*) '第 O 項目は',OLD
WRITE(*,*) '第 1 項目は',LAST
DO I = 2,N
NEW = OLD + LAST an+1=an+an-1の計算
WRITE(*,*)'第',I,'項目は',NEW
OLD = LAST anの数ををan-1にする
LAST = NEW an+1の数ををanにする.an+1は既にディスプレイに表示したのでこの時点で変数NEWの値はいらない
END DO
STOP
END PROGRAM report_no6
DO
文の中だけ示します).
DO I = 1,N
WRITE(*,*) '第', I, '項目は', NEW
NEW = OLD + LAST
LAST = OLD
OLD = NEW
END DO
All rights reserved.