第11回目の演習

第10回目の演習で説明すること

判断、分岐について

色々な計算をする際に、ある条件に基づいて結果を分ける場合がある.

人間が計算する場合、頭の中で様々な判断(例えば数の大小)を判断して解を出している.

では、これを計算機でおこなわせるにはどうすればよいだろうか?


2次方程式ax2+bx+c=0の解を求める
答えは判別式b2-4acが正か負かゼロかによって変わる.

FORTRANでは「IF文」というものが用意されている.

基本形
IF (条件式) THEN
条件が成立したときに実行するプログラム
何行続いてもよい
ELSE
上記条件が不成立のときに実行するプログラム
何行続いてもよい
END IF
拡張形
IF (条件式) THEN
条件が成立したときに実行するプログラム
何行続いてもよい
ELSE IF (条件式)THEN
上記条件が不成立のときに実行するプログラム
何行続いてもよい
ELSE IF (条件式)THEN
上記全ての条件が不成立のときに実行するプログラム
何行続いてもよい
以下,同様にELSE IF (条件式)THENが続いてもよい
END IF

注意

DO文のときと同じように,つねにIF (条件式) THENEND IFを組にして使うこと.

条件式の書き方
等式,不等式はつぎのように表す.
意味書き方
<
<=
==
>=
>
/=

IF ( P < Q )
は「もしもP<Qならば」の意味になる
条件式は組み合わせて使うことが出来る(論理演算子の利用)
例えば「P<3かつQ>5」ならば...という場合には
IF ( P < 3 ) .AND. (Q >5)
とプログラミングする.
他には.OR..NOT.がある.

演習時間内に作成するプログラム

a, b, cの値をキーボードから入力し,2次方程式ax2+bx+c=0の解を求めるプログラムを作成せよ.

ただし,判別式の計算結果によって答えの表示方式をかえること.


第11回目に課したレポート課題(subject: 学籍番号 report_no10

実数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点として採点します.

注意

第11回目に課したレポートの解答


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


前のページへ戻る.
Copyright. 2020, Kazuya Sato

All rights reserved.