令和8年度 ITパスポート試験 公開問題 問88

プログラミングすることによって,ペンの上げ下げ,直進及び右回りの方向転換が可能なロボットがある。このロボットに1辺が1 mの正六角形を描画させるプログラムを作成した。次の正六角形描画プログラムのa,bに入れる字句の適切な組合せはどれか。

正六角形描画プログラム
図の説明テキスト

〔正六角形描画プログラム〕
(1) ペンを下ろす。
(2) 処理回数のカウンタに a を設定する。
(3) 次の処理を順に実行する。

  • 1m直進する。
  • 右回りに b 度方向転換する。
  • 処理回数のカウンタに1を加える。
    (4) 処理回数のカウンタが6未満の場合は,(3) に戻る。
    (5) ペンを上げる。
解答・解説

正解: ア. a: 0, b: 60

正六角形を描画するためには、(3)の処理(1辺を描き、次の辺に向けて方向転換する処理)を 6回 実行する必要があります。

a(カウンタの初期値)について

このプログラムは、(3)で1辺を描いてカウンタに1を加えたあとに、(4)で「カウンタが6未満なら(3)に戻る」と判定します(後判定の繰返し)。つまり、判定するのは処理後のカウンタの値で、初回は判定の前に必ず1回実行されます。

  • カウンタの初期値 a = 0 の場合:
    (3)を1回実行するたびにカウンタは 1, 2, 3, 4, 5, 6 と増え、(4)ではこの値で判定します。1〜5 のときは「6未満」なので(3)に戻り、6 になったところで終了します。(3)の実行回数は 6回 で、正六角形が完成します。
  • カウンタの初期値 a = 1 の場合:
    (3)の実行後のカウンタは 2, 3, 4, 5, 6 と増え、6 になったところで終了します。(3)の実行回数は 5回 で、辺が1本足りず正六角形は完成しません。
    したがって、aには 0 が入ります。

b(方向転換の角度)について

ロボットが直進している状態から右回りに方向転換する角度は、描画する正六角形の 外角 に相当します。
正六角形の内角は 120∘120^\circ であるため、外角は以下のようになります。
180∘−120∘=60∘180^\circ - 120^\circ = 60^\circ
(または、多角形の外角の和が 360∘360^\circ であることから 360∘/6=60∘360^\circ / 6 = 60^\circ と計算することも可能です。)
したがって、bには 60 が入ります。

各選択肢の解説

  • ア: 正解。カウンタの初期値が0で処理を6回繰り返し、右回りに60度方向転換することで正六角形を描くことができます。
  • イ: カウンタの初期値は正しいですが、方向転換の角度が120度の場合、外角が120度(内角60度の正三角形)を描くことになるため誤りです。
  • ウ: 方向転換の角度は正しいですが、カウンタの初期値が1のため処理が5回しか行われず、図形が完成しないため誤りです。
  • エ: カウンタの初期値が1のため処理が5回しか行われず、方向転換の角度も誤っているため不適切です。

Spineチーム