Webで学ぶセンター試験数学−BASICプログラミング > IF〜END IF文

IF〜END IF文

IF〜END IF文

IF 条件 THEN
  処理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次方程式ax+b=0を解くプログラム

[プログラム]

  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次方程式なので、ax+b=0 <=> ax=-b <=> x=-b/aと計算することができる。ただし、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

[設問]

 空欄を埋めてプログラムを完成させなさい。ただし、このプログラムは次の要求を満たすこと。
  1. 正の値の入力を繰り返し受け付ける。
  2. 負の値が入力されたらループを抜ける。
  3. それまで入力された値の最大値と最小値を出力する。

[解説]

 行番号を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)

 手入力

・入出力

 入出力


<< 前のページトップページ次のページ >>
inserted by FC2 system