基本情報技術者 2016年 春期 午前(科目A) 問08
問題文
問8 とを自然数とするとき、流れ図で表される手続を実行した結果として、適切なものはどれか。


選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
流れ図の手続解析【午前解説】
正解の理由
流れ図は「繰り返し引き算」による除算を表しています。初期状態で とし、判定「」が真であれば終了するため、終了時の は必ず です。判定が偽(すなわち )のとき から を引き、 を 1 増やす操作を繰り返すので、終了時に は を何回引いたか、すなわち (商)であり、(余り)になります。したがって正解は イ(q が商、r が余り)です。
解法ステップ
- 初期化: を確認する。
- 判定: であればそのまま終了する(終了時の値を出力)。
- 更新:判定が偽()なら を行い、再び判定に戻る。
- 終了時の値は (ただし )。
- 例: のときの の変化は 17→12→7→2、 は 0→1→2→3、結果 。
(疑似コード)
q = 0
r = x
while not (r < y):
r = r - y
q = q + 1
# 結果: q は商, r は余り
選択肢別の誤答解説
- ア:q を「x ÷ y の余り」、r を「x ÷ y の商」としている点が逆で誤り。流れ図では が引いた回数(商)である。
- イ:正解。流れ図の終端で は を引いた回数すなわち商、 は残った値で余りとなる。
- ウ: の商・余りを述べており、変数の役割が入れ替わっている上に割る数・被除数も誤りで不適切。
- エ:ウと同様に を前提にしており、流れ図の演算(被除数が 、除数が )と合致しないため誤り。
よくある誤解
- 「条件が だから が余りではなく商になる」と誤解して判定の向きを逆に読むミスをしやすい。
- が の倍数のときに が になると誤想定し、終了条件を と誤認するケースがある。実際は余りは になる。
- を考慮せずに除算が常に可能だと扱う誤り。比較や引き算が意味を持つためには が前提となる。
補足コラム
この流れ図は「繰り返し引き算」による最も単純な除算アルゴリズムです。計算量は (商の大きさに比例)であり、 が小さいと反復回数が増えます。実用的には整数除算命令や高速な割り算アルゴリズムを使いますが、試験問題ではフローチャートの動作を正確に読み取り、状態遷移(初期値・判定・更新・終了条件)を追う力が問われます。数学的には終了時に
が成り立ちます(ただし )。
FAQ
Q1. y = 0 の場合はどうなる?
A1. 比較や引き算が定義できないため、この流れ図は意味を持ちません。問題文の「自然数」をどう定義するかにもよりますが、実務的には が前提です。
A1. 比較や引き算が定義できないため、この流れ図は意味を持ちません。問題文の「自然数」をどう定義するかにもよりますが、実務的には が前提です。
Q2. x < y のときは?
A2. 初期判定で が真になり、何も引かずに終了します。よって (余りは被除数そのもの)になります。
A2. 初期判定で が真になり、何も引かずに終了します。よって (余りは被除数そのもの)になります。
Q3. x が y の倍数のときは?
A3. 最終的に になり、 は正確に (整数)になります。オフバイワンになる心配はありません。
A3. 最終的に になり、 は正確に (整数)になります。オフバイワンになる心配はありません。
関連キーワード: 剰余, 商, 繰り返し引き算, フローチャート, ループ処理, 除算アルゴリズム, 比較判定, 擬似コード, 自然数, 演算回数

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

