SAシステムアーキテクト試験 午前Ⅱ

平成30年度秋期 システムアーキテクト 午前Ⅱ 問11

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    a = 2b
  2. イ
    2a = b
  3. ウ
    2a = 3b
  4. エ
    3a = 2b
解き方のヒントを見る

指定経路が通る分岐条件を順に整理する

流れ図で指定された経路をたどるには、途中の各判定でどちらへ進んだかが決まっています。その進み方が成り立つために変数がどんな値でなければならないかを、判定を通過するたびに書き出して整理する姿勢が大切です。

この問題で問われていること

判定の直前で変数の値が処理によって変化している場合、判定時点の値を初期値に置き換えて考える必要があります。経路上の各判定の時点で変数が初期値からどう変わっているかを意識し、条件を初期値の言葉で表せるか確認しましょう。

視点

実行経路から初期値の条件を考えるときは、経路上の分岐を一つずつ『この向きに進むには何が成り立つ必要があるか』という問いに置き換えます。繰返しがあれば、何回目の通過なのか、どの時点の値で判定されるのかも経路の一部として扱います。得られた条件を一つずつ並べ、それらが全体として矛盾なく同時に満たされる範囲を考えるのが、この分野での一般的な検討の進め方です。

確認ポイント

  • 指定された経路で通過する判定を、通る順番にすべて挙げられたか
  • 各判定について、その向きに進むための条件を判定時点の変数の値で書き出したか
  • 判定時点の値を初期値で表し直し、すべての条件を同時に満たすかを確かめたか
正解と解説を見る

正解

エ

解説

①でm=a、n=bと置き、指定された分岐順に従って⑤と④の更新を順に反映する。最後に②で等しくなる条件を立てると、初期値の関係は3a=2bとなる。

理由

①の後はm=a、n=bです。⑤を実行するとn=b-aとなり、その後④を実行するとm=a-(b-a)=2a-bとなる。最後に②で等しくなるため、2a-b=b-a、したがって3a=2bとなる。

比較

3a=2bならa=2b/3なので最初はa<bとなり、⑤へ進める。⑤後はm=2b/3、n=b/3でm>nとなるため④へ進み、更新後はm=nとなって⑥へ進む。

選択肢ア

これは不正解だよ。①でm=a、n=bとし、⑤の後はn=b-aとなる。続いて④を通るとm=2a-bになるため、最後に②で等しくするには2a-b=b-aが必要である。a=2bではこの条件を満たさない。

選択肢イ

これは不正解だよ。2a=bならa=b/2であり、最初に⑤を実行した後のnはb-a=b/2となる。このときm=aとnがすでに等しくなるため、次の②から⑥へ進み、指定された③→④の順序にならない。

選択肢ウ

これは不正解だよ。2a=3bではa=3b/2となり、初期状態でm=aがn=bより大きい。この場合、最初の③では⑤ではなく④へ進むため、問題で指定された①→②→③→⑤の順序を実現できない。

選択肢エ(正解)

これは正解だよ。3a=2bならa=2b/3で、最初はa<bとなるため⑤へ進む。⑤後はn=b-a=b/3、m=2b/3となり、④でmをm-nに更新するとm=b/3となるので、②でm=nとなり⑥へ進む。

学習のポイント

比較結果と変数更新を順番に追跡し、最後の等値条件から初期値の関係を求める。

出典:独立行政法人 情報処理推進機構(IPA)平成30年度秋期 システムアーキテクト試験 午前Ⅱ 問11(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針