令和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(方向転換の角度)について
ロボットが直進している状態から右回りに方向転換する角度は、描画する正六角形の 外角 に相当します。
正六角形の内角は であるため、外角は以下のようになります。
(または、多角形の外角の和が であることから と計算することも可能です。)
したがって、bには 60 が入ります。
各選択肢の解説
- ア: 正解。カウンタの初期値が0で処理を6回繰り返し、右回りに60度方向転換することで正六角形を描くことができます。
- イ: カウンタの初期値は正しいですが、方向転換の角度が120度の場合、外角が120度(内角60度の正三角形)を描くことになるため誤りです。
- ウ: 方向転換の角度は正しいですが、カウンタの初期値が1のため処理が5回しか行われず、図形が完成しないため誤りです。
- エ: カウンタの初期値が1のため処理が5回しか行われず、方向転換の角度も誤っているため不適切です。