令和8年度 ITパスポート試験 公開問題 問88 解説 正六角形描画プログラム
プログラミングすることによって, ペンの上げ下げ, 直進及び右回りの方向転換が可能なロボットがある。このロボットに1辺が1mの正六角形を描画させるプログラムを作成した。次の正六角形描画プログラムのa, bに入れる字句の適切な組合せはどれか。 〔正六角形描画プログラム〕 (1) ペンを下ろす。 (2) 処理回数のカウンタに a を設定する。 (3) 次の処理を順に実行する。 ・1m直進する。 ・右回りに b 度方向転換する。 ・処理回数のカウンタに1を加える。 (4) 処理回数のカウンタが6未満の場合は, (3) に戻る。 (5) ペンを上げる。
- ア ✓ 正答
- イ
- ウ
- エ
解説
正六角形を描くために必要なループ回数と回転角度を考えることで、aとbの値を導き出せます。
解き方の手順
ループ回数(a)の決定 正六角形には6つの辺があるため、直進と回転を6回繰り返す必要があります。プログラムでは(4)で「カウンタが6未満」の間繰り返すと指定されています。もし初期値aに0を設定した場合、カウンタは と変化し、計6回の繰り返しが行われます。これにより、ちょうど6回描画できるため a=0 が適切です。
回転角度(b)の決定 正多角形の描画において、必要な回転角度は「外角」の値です。多角形の外角の和は常に360度であるため、正六角形の1角あたりの外角は 度となります。したがって、bには60が入ります。
プログラミングにおけるループ処理の考え方
この問題は、繰り返し制御(ループ)の概念を理解しているかを問うものです。カウンタ変数を使って処理回数を管理する手法は、プログラミングの基本です。
カウンタの開始値を0にするか1にするかは、終了条件とセットで考える必要があります。今回のように「6未満(6)」という終了条件を用いる場合、0から開始すれば合計6回(0, 1, 2, 3, 4, 5)となり、1から開始すると合計5回(1, 2, 3, 4, 5)しか実行されません。実務のプログラミングでも、配列のインデックス(添字)を0から始める言語が多いため、0から数え始める感覚は非常に重要です。
図形描画を通じたアルゴリズム学習
このようなロボット制御の演習は、プログラミング教育において「タートルグラフィックス」として知られています。単純な図形を正確に描画させるためには、ロボットの現在の向きや位置を正しく把握し、順序立てて命令を組み立てる「論理的思考力」が求められます。
ITパスポート試験においても、この問題のように具体的な数値や条件を当てはめてプログラムの挙動を追跡する能力は、システムの仕様理解やバグ修正の際に応用できる重要なスキルとして重視されています。
参考リンク
- 反復処理(ループ)の概念(総務省 プログラミング教育の手引き)
- タートルグラフィックスの仕組み(Wikipedia)
- 多角形の内角と外角の性質(NHK for School 中学校数学)