正六角形描画プログラム|ITパスポート 令和8年 公開問題 問88

出典:令和8年 公開問題 問88 分野:基礎理論(大分類) / アルゴリズムとプログラミング
プログラミングすることによって、ペンの上げ下げ、直進及び右回りの方向転換が可能なロボットがある。このロボットに1辺が1mの正六角形を描画させるプログラムを作成した。次の正六角形描画プログラムのa、bに入れる字句の適切な組合せはどれか。

[正六角形描画プログラム]
(1)ペンを下ろす。
(2)処理回数のカウンタに a を設定する。
(3)次の処理を順に実行する。
・1m直進する。
・右回りに b 度方向転換する。
・処理回数のカウンタに1を加える。
(4)処理回数のカウンタが6未満の場合は、(3)に戻る。
(5)ペンを上げる。
ab
ア060
イ0120
ウ160
エ1120
解説

プログラミングによってロボットに図形を描かせる際には、処理回数のカウンタの初期値と、方向転換の角度を正しく設定する必要があります。正六角形は6つの辺を持つため、ループは6回反復します。カウンタは、1から開始(すなわち1を設定)する場合もありますが、この問題文では(2)で処理回数のカウンタにaを設定し、その後(3)で1m直進し、右回りにb度回転し、カウンタに1を加える構造です。ループの条件が「処理回数のカウンタが6未満の場合は、(3)に戻る」となっていることから、カウンタは0から始まることが想定されます。つまり、aは0が適切です。正六角形の各内角の外側への旋回角は360度÷6辺=60度です。したがって、bは60度とする必要があります。これにより、6回の繰り返しで1辺1mの正六角形を描くことができます。

したがって、アが適切です。

❌他選択肢が誤りの理由

イ:a=0、b=120
⇒120度の回転は2辺分の角度に相当し、正六角形を描くには不適切です。


ウ:a=1、b=60
⇒カウンタを1から開始するとループの回数制御がうまくいかず、6回の繰り返しになりません。


エ:a=1、b=120
⇒カウンタ1スタートかつ120度の回転はどちらも正六角形の描画には誤りです。


TSUNAGARU-ADVICE

まず押さえたいこと

ループ処理で図形を描く場合、繰り返す回数と方向転換角度の設定が重要です。特に正多角形は全周360度を辺の数で割った角度で回転します。

迷ったときの判断軸

カウンタの初期値が0か1かはループ条件式の表現に依存するため、問題文の条件に従って正確に判断します。回転角は360度を辺数で割った値が基本です。

次の学習につなげるために

この考え方はプログラミングでの図形描画だけでなく、反復処理や制御構造の理解にも役立ちます。さらに多角形の描画プログラム作成で応用可能となります。