あるプログラム言語によるプログラミングの解説書の中に次の記述がある。この記述中の"良いプログラム"がもっている特性はどれか。 このプログラム言語では、関数を呼び出すときに引数を保持するためにスタックが使用される。オプションの指定によって、引数で受け渡すデータをどの関数からでも参照できる共通域に移して、スタックの使用量を減らすことは可能だが、"良いプログラム"とは見なされないこともある。
引数渡しは結合度を下げ変更の影響を局所化する
選択肢
- ア実行するときのメモリの使用量が、一定以下に必ず収まる。
- イ実行速度が高速になる。
- ウプログラムの一部(関数)を変更しても、他の関数への影響が少ない。
- エプログラムのステップ数が少なく、分かりやすい。
正解と解説
正解:ウ プログラムの一部(関数)を変更しても、他の関数への影響が少ない。
引数として受け渡していたデータを、どこからでも参照できる共通域(グローバル変数)に移すと、関数間の結合度が高まる。ある関数の変更が共通域を使う他の関数へ波及しやすくなるため、メモリを節約できても保守性の面で望ましくない。したがって「良いプログラム」が持つ特性は、変更の影響が他へ及びにくいことである。
選択肢ごとの解説
- アメモリ使用量の上限が保証される点は共通域化の利点側であり、ここでの良さの根拠ではない。
- イ実行速度も共通域化で有利になり得るため、この記述の論旨と合わない。
- ウ正しい。引数渡しは結合度を下げ、変更の影響を局所化できる点が評価されている。
- エステップ数の少なさや見た目の簡潔さは、この記述が問題にしている観点ではない。
同じ分野の他の問題
- モジュール間のデータの受渡し方法のうち、最も低いモジュール結合度となるものはどれか。2022年度 春期 午前II 問6
- サブルーチンとの引数の受渡し方のうち,引数として渡した変数の値が,サブルーチンの実行後に変更されないことが保証されている…2025年度 春期 午前II 問9
- プログラムの構造的な複雑度を測る尺度としてMcCabeが提唱したサイクロマティック複雑度がある。制御の流れが次のグラフで…2025年度 春期 午前II 問8
- デザインパターンの一つであるObserverパターンを利用して実現できることはどれか。2025年度 春期 午前II 問5
- オブジェクト指向設計における設計原則の説明のうち,開放・閉鎖原則のものはどれか。2025年度 春期 午前II 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。