CO-S40情報Ⅰ 対策問題

コンピュータとプログラミング思考・計算

長いプログラムを関数に分割して作ることの利点として適当でないものはどれか。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

関数分割の利点の正しい理解 を問う問題です。「適当でないもの」を選ぶ問題なので、正しい利点3つを固めて消去します。

解説

関数とは、ひとまとまりの処理に名前をつけて部品化したものです。長いプログラムを関数に分割する利点は、大きく次の3つに整理できます。

  1. 再利用: 同じ処理を何度も書かずに、名前を呼ぶだけで使い回せる
  2. 部品ごとのテスト: 関数単位で動作確認ができ、誤りの場所を特定しやすい
  3. 見通しと分担: 全体の構造が読みやすくなり、複数人で関数ごとに分担して開発できる

一方、実行速度は関数に分けても基本的に変わりません。処理の中身が同じなら計算量も同じだからです。むしろ関数を呼び出すためのわずかな手間が増えることさえあります。「必ず2倍になる」のような断定的な速度向上の記述は、関数化の利点として誤りです。

この問題は「適当でないものを選ぶ」形式であることにも注意してください。正しい利点(選択肢2〜4)を知っていれば、消去法で1に絞れます。設問の「適当なもの/適当でないもの」の読み違いは、知識があっても失点する典型パターンです。

試作問題でも「枚数()」関数を先に定義し、それを使って最小交換硬貨枚数を計算する、という段階的な構成が採用されていました。共通テストのプログラム問題は「部品を作る→組み合わせる」という流れで出題されるので、関数の役割を意識して読むと全体像がつかみやすくなります。

選択肢の確認

1.○ 誤った記述なのでこれが答え。関数化しても実行速度は基本的に変わらない。
2.× これは正しい利点(再利用)。
3.× これは正しい利点(部品ごとの単体テスト)。
4.× これは正しい利点(見通しの良さと分担開発)。

ここだけは覚えよう

関数化の利点は「再利用・テスト・分担」の3つ — 実行速度の向上は利点に含まれない。

関連問題

CO-S39NW-K01