科目A問88
プログラミングすることによって,ペンの上げ下げ,直進及び右回りの方向転換が可能なロボットがある。このロボットに1辺が1mの正六角形を描画させるプログラムを作成した。次の正六角形描画プログラムのa,bに入れる字句の適切な組合せはどれか。
〔正六角形描画プログラム〕
(1)ペンを下ろす。
(2)処理回数のカウンタに a を設定する。
(3)次の処理を順に実行する。
・1m直進する。
・右回りに b 度方向転換する。
・処理回数のカウンタに1を加える。
(4)処理回数のカウンタが6未満の場合は,(3)に戻る。
(5)ペンを上げる。
〔正六角形描画プログラム〕
(1)ペンを下ろす。
(2)処理回数のカウンタに a を設定する。
(3)次の処理を順に実行する。
・1m直進する。
・右回りに b 度方向転換する。
・処理回数のカウンタに1を加える。
(4)処理回数のカウンタが6未満の場合は,(3)に戻る。
(5)ペンを上げる。

『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- ア
解説
正六角形は辺が6本なので、「1m直進」の処理を6回行う必要があります。カウンタは1回の処理ごとに1増え、条件は「カウンタが6未満なら繰り返す」です。初期値をa=0にすれば6回実行してちょうど止まりますが、a=1では5回で6に達して止まってしまい、1辺分不足します。方向転換は図形の外角で考えるため、1回あたりの回転は360÷6=60度が適切です。b=60が正しく、b=120では正六角形にならず正三角形を2回描く軌跡になります。以上より、組合せはア(a=0、b=60)です。
| ア. | |
カウンタ初期値0で6回の処理を実行でき、回転角は外角60度で正六角形を描けます。正解です。 | |
| イ. | |
初期値は正しいものの、回転120度では外角が大きすぎ、正六角形ではなく正三角形を2周する軌跡になります。誤りです。 | |
| ウ. | |
回転角は正しいものの、初期値1では5回でカウンタが6になり処理が終了し、6辺を描けません。誤りです。 | |
| エ. | |
初期値も回転角も不適切です。5辺で止まり、さらに回転120度では正六角形を描けません。誤りです。 |