令和5年度 科目A 問11
アルゴリズム
初期値aとbの関係
次の流れ図において,
① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥
の順に実行させるために,①において m と n に与えるべき初期値 a と b の関係はどれか。ここで,a,b はともに正の整数とする。
流れ図(①〜⑥は原典の番号):
開始 ↓ ① m ← a n ← b ↓ ② m:n ──(≠)──→ ③ m:n │ ├─(>)→ ④ m ← (m - n) → ②の手前に戻る │ └─(<)→ ⑤ n ← (n - m) → ②の手前に戻る ↓(=) ⑥ m の値を印字 ↓ 終了
- アa = 2b
- イ2a = b
- ウ2a = 3b
- エ3a = 2b
答えと解説を見る
✓ これが正解エ3a = 2b
解説
実行順をたどると、2a-b=b-aとなり3a=2bが導けます。
流れ図の②でmとnが等しいかを調べ、等しくなければ③で大小を比べて、大きい方から小さい方を引きます。見分ける軸は、指定された実行順のとおりに各比較の結果を式に直して並べることです。①でm=a、n=bとします。最初の③で⑤へ進むのでm<n、つまりa<bで、⑤によりn=b-aになります。次の③では④へ進むのでm>n、つまりa>b-aで、④によりm=a-(b-a)=2a-bになります。その後の②で⑥へ進むにはm=nが必要なので、2a-b=b-a、整理すると3a=2bです。たとえばa=2、b=3でたどると、n=1、m=1となり指定の順と一致します。これは、分岐の条件を不等式や等式に直して並べる、流れ図のトレースという考え方です。
ほかの選択肢はなぜ違うのか
- アa = 2b:a=2bではa>bなので、最初の③で⑤ではなく④へ進みます。④でm=2b-b=bとなってnと等しくなるため、実際の順は①②③④②⑥で、指定の順とは最初の分岐から食い違います。
- イ2a = b:2a=bでは最初にa<bとなり⑤へ進むところまでは合いますが、⑤でn=2a-a=aとなり、すぐにmと等しくなります。実行順は①②③⑤②⑥で終わり、④を通りません。
- ウ2a = 3b:2a=3bではa>bなので、最初の③で④へ進み、m=a-b=b/2になります。次の比較でm<nとなって⑤でn=b-b/2=b/2となり等しくなるため、実行順は①②③④②③⑤②⑥で、④と⑤の順が逆です。
出典:令和5年度 基本情報技術者試験 科目A 問11
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)