プログラミングすることによって,ペンの上げ下げ,直進及び右回りの方向転換が可能なロボットがある。
このロボットに1辺が1mの正六角形を描画させるプログラムを作成した。
次の正六角形描画プログラムのa,bに入れる字句の適切な組合せはどれか。
〔正六角形描画プログラム〕
(1) ペンを下ろす。
(2) 処理回数のカウンタに〔a〕を設定する。
(3) 次の処理を順に実行する。
・1m直進する。
・右回りに〔b〕度方向転換する。
・処理回数のカウンタに1を加える。
(4) 処理回数のカウンタが6未満の場合は,(3)に戻る。
(5) ペンを上げる。
正答1
解説
正解は1です。
正六角形を描くには、6回「1m直進して向きを変える」ことを繰り返します。
正六角形の内角は120度なので、進む向きを変える角度(外角)は180−120=60度です。
【計算】
外角=360度÷6=60度なので、bは60です。
カウンタを0から始めると、1回目の処理の後に1、6回目の処理の後に6になります。
カウンタが1から5の間は(3)に戻り、6になった時点で繰返しを終えます。
したがって、a=0とすると、処理はちょうど6回実行されます。
a=1とすると、カウンタが6になるのは5回目の処理の後なので、5回しか実行されません。
【選択肢別解説】
1:○ a=0なら処理が6回実行され、b=60なら毎回60度ずつ向きを変えるので、正六角形を描けます。
2:× a=0で6回実行されますが、b=120だと120度ずつ向きを変えます。
120度×3回で一周するので、正三角形をなぞることになります。
3:× b=60は正しいですが、a=1だと処理が5回しか実行されず、最後の1辺が描かれません。
4:× a=1では処理が5回しか実行されず、b=120でも正六角形にはなりません。
【ポイント】
正多角形を描くときに向きを変える角度は、360度を辺の数で割った外角です。
繰返しの回数は、カウンタの初期値と終了条件を合わせて確かめましょう。