前へ 上へ 次へ
BMI 値計算のための式は以下の通りです。
※ ここで身長がメートル単位であることに注意して下さい。
前へ 上へ 次へ
7 条件分岐(IF 文)
条件分岐は if 文により行う事ができます。 条件が真の場合のみの処理の記述は以下のように行います。if (条件) then 条件が真の場合の処理 end if
処理が 1 文で済む場合は以下のようにすることも可能です。
if (条件) 処理
偽の場合の処理も記述する場合には else を用いて以下のように記述します。
if (条件) then 条件が真の場合の処理 else 条件が偽の場合の処理 end if
条件がいくつもある場合には以下のような記述も可能です。
if (条件 1) then 条件 1 が真の場合の処理 else if (条件 2) then 条件 1 が偽で条件 2 が真の場合の処理 else if (条件 n) then 条件 1 から条件 n-1 が偽で条件 n が真の場合の処理 else 条件 1 から条件 n がすべて偽の場合の処理 end if[ if.f90 ] - 条件判断を行うサンプル
program if implicit none integer a, b print *, "Please enter two numbers:" read *, a, b if ( a > b ) then print *, "a is greator than b!" else if ( a == b ) then print *, "a is equal to b!" else print *, "a is less than b!" end if end program if 出力例: Please enter two numbers: 3 4 a is less than b!
比較は比較演算子を用いて行いますが、以下に利用可能な比較演算子を示します。
比較演算子 | 意味 | 用例 |
.lt.もしくは < | より小さい | a.lt.b もしくは a<b |
.le.もしくは <= | より小さいか等しい | a.le.10 もしくは a<=10 |
.eq.もしくは == | 等しい | a.eq.100 もしくは a==100 |
.ne.もしくは /= | 等しくない | a.ne.0 もしくは a/=0 |
.gt.もしくは > | より大きい | a.gt.30 もしくは a>30 |
.ge.もしくは >= | より大きいか等しい | a.ge.30 もしくは a>=30 |
複数の条件を結合するための論理演算子と、条件を否定するための論理演算子が用意されています。 以下に論理演算子を優先度の高い順に示します。 (優先度の高いものから先に評価されます。)
論理演算子 | 意味 & 意味 | |
.not. | 以外 | .not. a==b |
.and. | かつ | a==b .and. b==c |
.or. | もしくは | a==b .or. b==c |
.eqv. | 論理値が等しい | a<0 .eqv. b<0 (a と b の符号が同じという比較例) |
.neqv. | 論理値が等しくない | a<0 .neqv. b<0 (a と b の符号が一致しないという比較例) |
※ 補足:論理値同士の比較には == や /= を使えません。 .eqv. もしくは .neqv. を利用します。
以下に条件式の例を示します。
[
comp.f90
] - 条件式のサンプル
program comparison implicit none integer,parameter :: my_height = 167 integer,parameter :: my_weight = 60 integer your_height, your_weight print *, "Please enter your height in cm:" read *, your_height print *, "Please enter your weight in kg:" read *, your_weight if ( my_height > your_height .and. my_weight > your_weight ) then print *, "I am TALLER and HEAVIER than you!" end if end program comparison 出力例: Please enter your height in cm: 160 Please enter your weight in kg: 56 I am TALLER and HEAVIER than you!
7.1 ★ 練習課題:BMI 値を求める
身長(cm)と体重(kg)を入力して、それらの値から BMI 値を求め出力して下さい。 更に求められた BMI 値によりそれぞれ以下のようなメッセージを出力して下さい。BMI 値 | 出力メッセージ |
18.5 未満 | Yasegimidesu |
18.5 以上 25.0 未満 | Futsuudesu |
25.0 以上 30.0 未満 | Futorigimidesu |
30.0 以上 | Futorisugidesu |
BMI 値 = 体重(kg)÷(身長(m)× 身長(m)) 例えば身長 167 cmで体重 60 kgであれば BMI 値 = 60 ÷(1.67 × 1.67) となります。
処理手順例
-
変数を宣言する
例)
real bmi, h, w - 身長(cm)を入力してほしい旨を画面に出力する(print 文)
- 身長をキーボードから入力する(read 文)
- 体重(kg)を入力してほしい旨を画面に出力する(print 文)
- 体重をキーボードから入力する(read 文)
-
公式を用いて BMI 値を計算してその結果を答えを格納する変数に代入する
例)
h = h/100.0 ! センチメートルをメートルに変換
bmi = w/(h*h) - BMI 値を画面に出力する(print 文)
- 4つの条件(Yasegimidesu, Futsuudesu, Futorigimidesu, Futorisugidesu)のうちで該当するメッセージを表示する(if 文)
実行例: Enter SHINCHO(cm): 170 Enter TAIJU(kg): 60 BMI = 20.7612438 Futsuudesu[ kadai-bmi.f90 ] - BMI 値を求めるプログラム例
前へ 上へ 次へ