応用情報技術者 2024年 春期 午前2 問05
問題文
正の整数Mに対して、次の二つの流れ図に示すアルゴリズムを実行したとき、結果xの値が等しくなるようにしたい。aに入れる条件として、適切なものはどれか。

選択肢
ア:n < M
イ:n > M-1
ウ:n > M(正解)
エ:n > M+1
正の整数Mに対する二つの流れ図の結果xの一致条件【午前2 解説】
要点まとめ
- 結論:右図の条件「a」は「n > M」であることが正解です。
- 根拠:左図はnがMから1まで1ずつ減少し、右図はnが1からMまで1ずつ増加するループで同じ積を計算します。
- 差がつくポイント:ループの終了条件を正しく理解し、等号の有無や比較演算子の向きを間違えないことが重要です。
正解の理由
左図はnをMから1まで1ずつ減らしながらxに掛けていくため、ループはnが1以上の間続きます。
右図はnを1から始めて1ずつ増やし、nがMを超えた時点で終了します。
したがって、右図の終了条件は「n > M」とすることで、nがMまでの積を計算し、左図と同じ結果になります。
よって、ウ: n > Mが正解です。
右図はnを1から始めて1ずつ増やし、nがMを超えた時点で終了します。
したがって、右図の終了条件は「n > M」とすることで、nがMまでの積を計算し、左図と同じ結果になります。
よって、ウ: n > Mが正解です。
よくある誤解
- 「n >= M」や「n > M-1」としてしまい、ループ回数がずれて結果が異なることがあります。
- ループの増減方向を混同し、条件式の比較演算子を逆にする誤りも多いです。
解法ステップ
- 左図のループ範囲を確認し、nがMから1まで減少していることを把握する。
- 左図のループ回数はM回であることを理解する。
- 右図のnは1から始まり、1ずつ増加していることを確認する。
- 右図のループ終了条件を「nがMを超えたら終了」と設定する必要があると判断する。
- 選択肢の中から「n > M」を選ぶ。
選択肢別の誤答解説
- ア: n < M
→ nがM未満の間ループすると、n=Mのときの掛け算が抜けてしまい結果が異なる。 - イ: n > M-1
→ nがM-1より大きいとき終了なので、n=Mのときに終了しループ回数が不足する。 - ウ: n > M
→ nがMを超えたら終了し、n=1からMまで正しく掛け算を行うため正解。 - エ: n > M+1
→ nがM+1を超えたら終了なので、n=M+1のときもループし余分な計算が入る。
補足コラム
ループの終了条件は「境界値問題」と呼ばれ、プログラミングやアルゴリズム設計で最もミスしやすいポイントです。
増加ループと減少ループで条件式の向きや比較演算子が変わるため、問題文の流れ図や変数の変化を丁寧に追うことが重要です。
増加ループと減少ループで条件式の向きや比較演算子が変わるため、問題文の流れ図や変数の変化を丁寧に追うことが重要です。
FAQ
Q: なぜ「n > M」だとループが正しく終了するのですか?
A: nがMを超えた時点でループを抜けるため、n=1からMまでの積を正確に計算できます。
A: nがMを超えた時点でループを抜けるため、n=1からMまでの積を正確に計算できます。
Q: 「n >= M」ではダメなのですか?
A: 「n >= M」だとn=Mのときに終了してしまい、n=Mの掛け算が実行されず結果が異なります。
A: 「n >= M」だとn=Mのときに終了してしまい、n=Mの掛け算が実行されず結果が異なります。
関連キーワード: ループ条件、境界値問題、流れ図、アルゴリズム、比較演算子

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

