IF〜END IF文
IF 条件 THEN
処理1
処理2
・
・
・
END IF
(条件)が真ならばTHENとEND IFの間の行の(処理1),(処理2),・・・を行う。
その後、END IFの次の行へ進む。
処理1
処理2
・
・
・
END IF
(条件)が真ならばTHENとEND IFの間の行の(処理1),(処理2),・・・を行う。
その後、END IFの次の行へ進む。
IF 条件 THEN
処理1
処理2
・
・
・
ELSE
処理B1
処理B2
・
・
・
END IF
(条件)が真ならば(処理A1),(処理A2),・・・を、
偽ならば(処理B1),(処理B2),・・・を行う。
その後、END IFの次の行へ進む。
処理1
処理2
・
・
・
ELSE
処理B1
処理B2
・
・
・
END IF
(条件)が真ならば(処理A1),(処理A2),・・・を、
偽ならば(処理B1),(処理B2),・・・を行う。
その後、END IFの次の行へ進む。
【確認】1次方程式を解くプログラム
[プログラム]
10 INPUT PROMPT "a,b=":A,B 20 IF A=0 THEN 30 PRINT "a : Don't input zero." 40 GOTO 10 50 ELSE 60 PRINT "x=";-B/A 70 END IF 80 END
[設問]
このプログラムを実行しなさい。
[実行結果]
[解説]
1次方程式なので、と計算することができる。ただし、a=0の時はxの項が消えてb=0となってしまうため、注意が必要である。そこで、このプログラムにおいてはa=0が入力された場合はGOTO文で10行目へ戻り、再入力を促している。
【問題1】データの最大値・最小値を求めるプログラム
[プログラム]
100 LET MAX=0 110 LET MIN=0 120 INPUT PROMPT "Input data.":D 130 IF ___ THEN GOTO ___ 140 IF _____ THEN 150 LET MAX=D 160 PRINT "New max=";D 170 END IF 180 IF _____ THEN 190 LET MIN=D 200 PRINT "New min=";D 210 END IF 220 GOTO ___ 230 PRINT "max=";___ 240 PRINT "min=";___ 250 END
[設問]
空欄を埋めてプログラムを完成させなさい。ただし、このプログラムは次の要求を満たすこと。- 正の値の入力を繰り返し受け付ける。
- 負の値が入力されたらループを抜ける。
- それまで入力された値の最大値と最小値を出力する。
[解説]
行番号を100から始めているのは、このような大きなプログラムでは10行目から始めてしまうと90行目までと100行目以降が左右にずれてしまい、見づらいからである。
[プログラム]
10 LET MAX=0 20 LET MIN=0 (省略) 90 IF _____ THEN 100 LET MIN=D 110 PRINT "New min=";D 120 END IF (省略)
【問題2】データの個数(num)・合計(sum)・平均(mean)を求めるプログラム
[プログラム]
110 LET S=0 120 INPUT PROMPT "Input data.":D 130 IF ___ THEN 140 LET N=___ 150 LET S=___ 160 GOTO ___ 170 END IF 180 PRINT "num=";_ 190 PRINT "sum=";_ 200 PRINT "mean=";___
[設問]
空欄を埋めてプログラムを完成させなさい。また、下の図はこのプログラムの動作を表したフローチャートである。
[フローチャート]
フローチャート
プログラムを図に表して、流れをつかみやすくしたものをフローチャート(流れ図)といいます。
[フローチャートの記号]
・端子(始まりと終わり)
・判断
・処理
・手入力(INPUT)
・入出力