色々な計算をする際に、ある条件に基づいて結果を分ける場合がある.
人間が計算する場合、頭の中で様々な判断(例えば数の大小)を判断して解を出している.
では、これを計算機でおこなわせるにはどうすればよいだろうか?
例
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.