IPA過去問ドリル

平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問10

テクノロジ/アルゴリズム

次の流れ図において, ①→②→③→⑤→②→③→④→②→⑥ の順に実行させるために,①において m と n に与えるべき初期値 a と b の関係はどれか。ここで,a,b はともに正の整数とする。

平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問10の図

出典:平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問10

正解:エ

解説

流れ図の実行順序①→②→③→⑤→②→③→④→②→⑥から,mとnの値の変化をたどります。①でm=a,n=bとなります。1回目の②の判定はm≠nで③へ進み,③の判定はm<nで⑤(n-m→n)へ進むため,この時点でa<bであり,n=b-aとなります。2回目の②の判定は再びm≠nで③へ進み,③の判定は今度はm>nで④(m-n→m)へ進むため,a>(b-a)であり,m=a-(b-a)=2a-bとなります。3回目の②の判定でm=nとなって⑥へ進むことから,2a-b=b-aが成り立ち,整理すると3a=2bとなります。

選択肢ごとの解説

  • 誤り。この流れ図の実行順序をたどると,2a-b=b-aという関係から3a=2bが導かれ,a=2bではこの実行順序にはなりません。
  • 誤り。2a=bという関係では,与えられた実行順序(②→③→⑤→②→③→④→②→⑥)どおりには計算が進みません。
  • 誤り。2a=3bという関係では,与えられた実行順序どおりには計算が進みません。
  • 正しい。m=a,n=bから,n←n-m(=b-a),次にm←m-n(=a-(b-a)=2a-b)と計算が進み,最終的にm=nとなるためには2a-b=b-a,すなわち3a=2bが成り立つ必要があります。
システムアーキテクトの過去問を演習モードで解く