Webで学ぶセンター試験数学−BASICプログラミング > INT関数

INT関数

INT関数

INT(X)
Xを超えない最大の整数 (integer) を求めます。
ガウス記号[X]と同値で、おおざっぱに言えば「小数点以下切り捨て」ですが、X<0のときは注意が必要です。

【確認】次のプログラムの実行結果を予想してからを実行しなさい。

  10  PRINT "INT(3.14)=";INT(3.14)
  20  PRINT "INT(-3.14)=";INT(-3.14)
  30  PRINT "INT(3)=";INT(3)
  40  END

[実行結果]

  INT(3.14)= 3 
  INT(-3.14)=-4
  INT(3)= 3

[解説]

 INT(3.14)は3.14を超えない最大の整数を返すので、3が出力されるのはいいと思います。しかし、INT(-3.14)は注意が必要です。-3が返ってくると思った方は下の数直線をご覧下さい。-3.14を超えない最大の整数は-3ではなく-4であることがわかると思います。

数直線

 そして、INT(3)は3を超えない最大の整数3を返します。

【問題1】Xが整数であるか判定するプログラム

[プログラム]

  10  INPUT PROMPT "x=":X
  20  IF X=______ THEN
  30      PRINT "整数"
  40      GOTO 70
  50  END IF
  60  PRINT "整数ではない"
  70  END

[設問]

 空欄を埋めてプログラムを完成させなさい。

[解答]

[解説]

 INT(X)はXを超えない最大の整数を返すため、Xが整数であれば返ってくる値もXとなります。そして、Xが整数でなければ、INT(X)はXとは異なる値になります。

【問題2】小数点以下を四捨五入するプログラム

[プログラム]

  10  INPUT PROMPT "x=":X
  20  LET X=INT(____)
  30  PRINT X

[設問]

 以下の選択肢から1つ選び、空欄を埋めなさい。

(ア)X (イ)X-0.5 (ウ)X+0.5 (エ)X-1 (オ)X+1

[解答]

【問題3】aをbで割った商qと余りrを計算するプログラム

[プログラム]

  10  INPUT PROMPT "a,b=":A,B
  20  PRINT "q=";________
  30  PRINT "r=";____________
  40  END

[設問]

 空欄を埋めてプログラムを完成させなさい。

[ヒント]

   

[解答]

[解説]

 AをBで割っただけでは小数部分が発生してしまうので、INT関数で整数部分のみ抜き出します。余りrはヒントを参考にして下さい。

【問題4】aがbの倍数であるか判定するプログラム

[プログラム]

  10  INPUT PROMPT "a,b=":A,B
  20  IF ______________ THEN PRINT "mul" ELSE PRINT "non-mul"
  30  END

[設問]

 空欄を埋めてプログラムを完成させなさい。ただし、ここでは文字数の都合からmultiple(倍数)を略してmulとした。

[ヒント]

 いくつもの解法があります。

  1. aがbの倍数である。⇔ aはbで割り切れる。⇔ aをbで割った余りは0である。
  2. aがbの倍数である。⇔ aはbで割り切れる。⇔ a/bとa/bの整数部分は等しい。

[解答]

【問題5】自然数nが素数 (prime) であるか判別するプログラム

[プログラム]

    10  INPUT PROMPT "n=":N
    20  FOR I=_ TO _
    30      IF ______________ THEN
    40          PRINT N;"is not a prime."
    50          GOTO 90
    60      END IF
    70  NEXT I
    80  PRINT N;"is a prime."
    90  END

[設問]

 空欄を埋めてプログラムを完成させなさい。ただし、このプログラムはキーボードから入力された値nが2以上の自然数であるときのみ正常に動作する。

[解答]


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