ホーム>センター実戦コース>1997センター数学IA 本試験

●問題
第5問 (選択問題) (配点 20)
次は自然数Nが平方数であるかどうかを判定するプログラムである。

10   INPUT "N=" ; N
20   FOR I=1 TO N
30     J=I*I
40     K=N-J
50     PRINT "K=" ; K
60     IF K=<0 THEN GOTO 80
70   NEXT I
80   IF K<0 THEN GOTO 110
90   PRINT"YES" ; N ; "=" ; I ; "*" ; I
100  GOTO 120
110  PRINT "N0"
120  END
(1)このプログラムを実行して、Nに16を入力すると画面には
          K=[アイ]
          K=[ウエ]
          K=[オ]
          K=[カ]
          YES [キク] = [ケ] + [コ]
が表示される。

(2)また、Nに13を入力すると画面には
          K=[サシ]
          K=[ス]
          K=[セ]
          K=[ソタ]
          NO
が表示される。

(3)このプログラムを繰り返し実行して、Nに1から100までの整数を順に入力したとき、 NOは[チツ]回表示される。
●問題の急所
  1. 変数の役割を理解せよ
    このプログラムで出てくる変数はI,J,K,Nです。
    • I
      for-nextで繰り返すときに使う変数。最初は0で、繰り返す度に1ずつ増え、 最後はNになる。
    • J
      変数Jの値は、I^2(I*I)です。
    • K
      変数Kの値は、N-Jです。プログラムではKの正負を調べている場面があるので、 Kの正負を考えてみましょう。
      • K>0
        N>J=I*Iということ。
      • K=0
        N=I*Iということ。このときのIが欲しい。
      • K<0
        N<J=I*Iということ。Iは0<=I<=Nなので、 実際にはこのようにならない。
    • N
      ユーザーが入力した値を収めている。
    これだけ理解できれば、プログラムの概要はつかんだも同然。 分かりにくければ流れ図(フローチャート)を書いてもよい(その方が時間短縮にもなる)。
  2. プログラムをよく見よ
    プログラムをよく眺めて下さい。最後に表示されるKの値は必ず0以下ですから、 [カ]と[ソタ]は0か-*(*は1から9)に絞られます。 さらに、空欄の数から、[カ]=0は明らか。 *は実際に繰り返してみればすぐ分かる。Nが少ない値なら実験あるのみ。
●解答
20点満点です。
空所の記号解答配点
アイ151
ウエ121
71
01
キク161
ケ コ4 41
サシ121
91
41
ソタ-31
チツ901

ケ と コ は組んで正解とします。
△このページの一番上へ|△戻る

 Copyright© 2002-2003 Home , All rights reserved.