アルゴリズムとプログラミング|令和8年度 ITパスポート試験 問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
解説
向きを変える角度は60度なので、aは0、bは60です。
正六角形は、1辺を進むごとに同じ角度だけ向きを変えることを六回繰り返すと描けます。向きを変える角度は、一周ぶんの360度を六つに分けた60度です。よってbには60が入ります。繰返しの回数は、カウンタが6未満の間だけ戻るという書き方で決まっています。カウンタを0から始めると、一回進むごとに1ずつ増えて、六回目を終えたところで6になり、6未満ではなくなるので終わります。ちょうど六回になるので、aには0が入ります。向きを変える角度は、外側にできる角の大きさです。内側の角である120度と取り違えやすいところなので、一周が360度であることから割り出すと確かです。
ほかの選択肢はなぜ違うのか
- bを120としています。120度ずつ向きを変えて六回進むと、三角形の上を二周することになり、六つの辺をもつ形にはなりません。内側にできる角と外側にできる角を取り違えると、この値になります。
- aを1としています。1から始めると、六回目を終える前にカウンタが6に達してしまうため、辺が五本しか引かれません。曲がる角度のほうは合っているので、始める値だけで結果が変わってしまいます。
- aを1、bを120としています。始める値と曲がる角度の両方が食い違っており、辺の数も向きを変える角度もそろいません。二つとも外れているため、辺の数も向きを変える角度もそろいません。
この問題に関係する言葉
- 正六角形
- カウンタ
- プログラムコンピュータへの命令をまとめたもの。著作権法ではソースプログラムそのものが保護され、その中のアイディアやアルゴリズムは保護されません。
出典:令和8年度 ITパスポート試験 問88(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くならアルゴリズムとプログラミングへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)