令和8年度 問88
アルゴリズムとプログラミング
正六角形に関する問題
プログラミングすることによって,ペンの上げ下げ,直進及び右回りの方向転換が可能なロボットがある。このロボットに1辺が1mの正六角形を描画させるプログラムを作成した。次の正六角形描画プログラムのa,bに入れる字句の適切な組合せはどれか。
〔正六角形描画プログラム〕
(1) ペンを下ろす。
(2) 処理回数のカウンタに a を設定する。
(3) 次の処理を順に実行する。
・1m直進する。
・右回りに b 度方向転換する。
・処理回数のカウンタに1を加える。
(4) 処理回数のカウンタが6未満の場合は,(3)に戻る。
(5) ペンを上げる。
| a | b | |
|---|---|---|
| ア | 0 | 60 |
| イ | 0 | 120 |
| ウ | 1 | 60 |
| エ | 1 | 120 |
- ア0 60
- イ0 120
- ウ1 60
- エ1 120
答えと解説を見る
✓ これが正解ア0 60
解説
向きを変える角度は60度なので、aは0、bは60です。
正六角形は、1辺を進むごとに同じ角度だけ向きを変えることを六回繰り返すと描けます。向きを変える角度は、一周ぶんの360度を六つに分けた60度です。よってbには60が入ります。繰返しの回数は、カウンタが6未満の間だけ戻るという書き方で決まっています。カウンタを0から始めると、一回進むごとに1ずつ増えて、六回目を終えたところで6になり、6未満ではなくなるので終わります。ちょうど六回になるので、aには0が入ります。向きを変える角度は、外側にできる角の大きさです。内側の角である120度と取り違えやすいところなので、一周が360度であることから割り出すと確かです。
ほかの選択肢はなぜ違うのか
- イ0 120:bを120としています。120度ずつ向きを変えて六回進むと、三角形の上を二周することになり、六つの辺をもつ形にはなりません。内側にできる角と外側にできる角を取り違えると、この値になります。
- ウ1 60:aを1としています。1から始めると、六回目を終える前にカウンタが6に達してしまうため、辺が五本しか引かれません。曲がる角度のほうは合っているので、始める値だけで結果が変わってしまいます。
- エ1 120:aを1、bを120としています。始める値と曲がる角度の両方が食い違っており、辺の数も向きを変える角度もそろいません。1から始めて120度ずつ曲がると、辺を5本引いたところで止まり、正六角形にはなりません。
この問題の用語
- プログラムコンピュータへの命令をまとめたもの。処理の手順を決まった言語で書き、コンピュータはそれを順に実行します。
- ボット人に代わって決まった作業を自動でこなすプログラムのことです。攻撃者の指示で動くよう乗っ取られた機器やプログラムを指すこともあります。
出典:令和8年度 ITパスポート試験 問88(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和8年度 問85:素数に関する問題(プログラム)
- 令和8年度 問67:整列に関する問題(プログラム)
- 令和8年度 問62:ベンチマークテストに関する記述(プログラム)
- 令和6年度 問62:配列に関する問題(プログラム)
- 平成30年度 秋期 (特別措置試験) 問7:著作権法に関する問題(プログラム)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)