CO-S38|情報Ⅰ 対策問題
プログラムが期待どおり動かないとき、原因を絞り込む方法として最も適当なものはどれか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
デバッグの基本手順(途中経過の観察) を問う問題です。「どこからずれるか」を観察で絞り込む発想がカギです。
解説
プログラムの誤り(バグ)を見つけて直す作業をデバッグといいます。バグ取りで最も大切なのは、勘で直すのではなく、観察によって原因の場所を絞り込むことです。プログラムは上から順に実行されるので、「どこまでは想定どおりで、どこから想定とずれるか」が分かれば、その境目に原因があると特定できます。
定石の手順は次のとおりです。
- 要所に「表示する(変数)」を挿入して、途中の変数の値を出力させる
- 出力を見て、想定どおりの区間と、ずれ始めた区間を見極める
- ずれ始めた場所の周辺のコードを重点的に調べ、原因の仮説を立てる
- 修正して再実行し、直ったかを確認する
怪しい範囲を半分ずつに絞っていけば、二分探索と同じ発想で効率よく原因にたどり着けます。紙の上でトレース表を書いて追うのも、まったく同じ「途中経過の観察」です。一方、全部書き直すのは原因が分からないまま同じミスを繰り返す危険があり、同じコードを何度実行しても結果は変わりません。コメントは実行に影響しないので消しても無意味です。
共通テストでは「実行結果が想定と違うとき、まず何をすべきか」という形で問われます。「仮説→観察(確認)→修正」という科学的な手順を選ぶ、と覚えておきましょう。
選択肢の確認
1.○ 途中の値を観察し、ずれ始める場所を特定するのがデバッグの定石。
2.× 全部書き直しても原因を理解しないままでは同じ誤りを繰り返す。
3.× 同じプログラムは何度実行しても同じ結果になる。
4.× コメントはプログラムの動作に影響しない。
ここだけは覚えよう
デバッグは「途中の値を表示して、ずれた場所を絞る」 — 仮説→観察→修正の順で科学的に。