色々な計算をする際に、ある条件に基づいて結果を分ける場合がある.
人間が計算する場合、頭の中で様々な判断(例えば数の大小)を判断して解を出している.
では、これを計算機でおこなわせるにはどうすればよいだろうか?
例
2次方程式ax2+bx+c=0の解を求めるFORTRANでは「IF文」というものが用意されている.
意味 | 書き方 |
---|---|
< | < |
≦ | <= |
= | == |
≧ | >= |
> | > |
≠ | /= |
IF ( P < Q )
IF ( P < 3 ) .AND. (Q >5)
.OR.
と.NOT.
がある.
a, b, cの値をキーボードから入力し,2次方程式ax2+bx+c=0の解を求めるプログラムを作成せよ.
ただし,判別式の計算結果によって答えの表示方式をかえること.
実数x
を入力し,つぎの関数f(x)
の値を表示するプログラムを作成せよ.
f(x) | = | 0 | x < 0 | |
= | x | 0 ≦ x < 2 | ||
= | -x + 3 | 2 ≦ x < 5 | ||
= | 0 | 5 ≦ x |
実行例は上記の条件を鑑みて,少なくとも4個ほど載せること.
2番目の条件の部分は
ELSE IF(X < 2.0) THEN
となります.今回のプログラムでは
ELSE IF(0.0 <= X < 2.0) THEN
といった条件式は使いません.
もし使っていた場合は0点として採点します.
INTEGER:: A
としてA=-X+3
を計算している人が多数いました.また,数値を.0
としていない人が多数いました.もちろん,減点しています.
PROGRAM REPORT_NO10
IMPLICIT NONE
REAL :: X, F
WRITE(*,*) 'PLEASE INPUT X'
READ(*,*) X
IF(X < 0.0) THEN
F=0.0
ELSE IF(X < 2.0) THEN
F=X
ELSE IF(X < 5.0) THEN
F=-X + 3.0
ELSE
F=0.0
END IF
WRITE(*,*) 'F(X) is ', F
STOP
END PROGRAM REPORT_NO10
All rights reserved.