戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2026年 88


問題文

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

選択肢

(正解)

🔒 解説は解答すると表示されます

正六角形を描くプログラム【ITパスポート 解説】

正解の理由

選択肢 が正しい理由は次の通りです。
まず「処理回数のカウンタ」はカウンタ(counter:繰り返し回数を数える変数)を意味します。問題のループは「カウンタに1を加える」→「カウンタが6未満なら繰り返す」という形です。初期値を0にすると、ループ本体はちょうど6回実行されます(0→1→2→3→4→5→6で6回実行して終了)。よって a は 0 が正しいです。
次に角度 b について、正六角形の外角(外側に曲がる角度。ここではロボットが直進後に右回りで向きを変える角度)を使います。正多角形の外角の和は なので、1辺ごとの外角は です。したがってロボットは右回りに 60 度回転すれば辺をなめらかにつなげて正六角形が描けます。よって b は 60 が正しいです。
以上より、初期値 a = 0、回転角 b = 60 を含む選択肢 が適合します。

解法ステップ

  1. ループの回数を決める。正六角形は辺が6つなので「辺を描く処理」を6回行う必要がある。
    • 用語補足:ループ(loop:繰り返し処理)
  2. カウンタ方式を読む。プログラムは「開始時にカウンタに a を設定」「ループ内で1を加える」「カウンタが6未満なら戻る」。この条件でループが何回実行されるかを考える。
    • カウンタ初期値 0 のとき:本体は6回実行される(0→1→2→3→4→5→6)。
    • 初期値 1 のとき:本体は5回で終了(1→2→3→4→5→6)。
  3. 角度は外角を使う。正多角形の外角は を辺数で割る:。ロボットは直進後に右回りで外角だけ回転すればよい。
  4. よって a=0、b=60 を選ぶ。
(参考:擬似コードで表すと)
pen_down()
counter = 0     # a = 0
while counter < 6:
    forward(1)  # 1m直進
    turn_right(60)  # b = 60 度右回り
    counter += 1
pen_up()

選択肢別の誤答解説

  • ア(a = 0, b = 60)
    正しい。カウンタ初期値0でループが6回回り、外角60度で正六角形が描ける。
  • イ(a = 0, b = 120)
    カウンタは正しく6回回るが、回転角が120度だと辺がつながらない。120度は正六角形の内角(内側の角)であり、ロボットが右回りで120度回ると向きが大きく変わり、形が崩れる。
  • ウ(a = 1, b = 60)
    角度は正しいが、カウンタ初期値が1だとループ本体が5回しか実行されないため、辺が1本足りず多角形にならない。
  • エ(a = 1, b = 120)
    初期値も角度もどちらも不適。辺数が不足し、かつ回転角も間違っている。

よくある誤解

  1. 「内角120度を回せばよい」と考える誤り
    • 多くの人は「六角形の角は120度」と覚えているため、ロボットも120度回すべきと誤解します。しかしロボットの向き変更は外側へ曲がる角度(外角)を使うため、 が正しいです。
  2. カウンタの初期値を1にしても6回回ると思う誤り
    • ループの構造(増加がループの末尾にあり、条件は「未満」)を正しく読み取らないと、何回繰り返されるかを誤算します。初期値0で6回、1で5回です。

補足コラム

  • 正多角形の角の関係:
    • 内角(polygon interior angle:図形の内側の角)は、正六角形で
    • 外角(外側に曲がる角度、ここでロボットが回る角度)は を辺の数で割った値、すなわち 。ロボットが辺を1つ進むごとに向きを変える角度はこの外角を使います。
  • ループの設計パターン:
    • 「0から数えてN回繰り返す」場合は初期値0、条件は「< N」、末尾で「+1」が自然でミスが少ない設計です。

FAQ

Q1. 右回りと左回りどちらでもいいですか?
A1. どちらでも描けますが、回転角は向きによって符号が変わります。右回りに 回す代わりに左回りに 回す(360−60)などでも同じ向きになります。問題文は「右回り」と指定しているため右回りの角度を使います。
Q2. ロボットの初期向きは関係ありますか?
A2. 初期向きは図形の回転位置に影響しますが、辺の長さと角度が合っていれば正六角形になります。位置や向きは正解判定に影響しません(形が六角形になることが重要)。
Q3. 外角の一般式は?
A3. 正多角形の外角は (n は辺の数)です。
Q4. もしループ条件が「カウンタが6以下なら戻る」だったら初期値は?
A4. 条件が「<= 6(以下)」で増分が末尾にあるなら、初期値は0だと7回実行されます。条件や増減位置によって初期値を調整する必要があります。ループ仕様を必ず読みましょう。

関連キーワード: ループ、カウンタ、外角、内角、正六角形、角度計算、繰り返し処理、アルゴリズム、擬似コード
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について