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

次の流れ図において,

① →\to ② →\to ③ →\to ⑤ →\to ② →\to ③ →\to ④ →\to ② →\to ⑥

の順に実行させるために,①においてmmとnnに与えるべき初期値aaとbbの関係はどれか。ここで,aa,bbはともに正の整数とする。

流れ図
図の説明テキスト

流れ図(フローチャート):

  • 開始 → 処理①「a→m,b→na \to m, b \to n」
  • 処理① → 判断②「m:nm : n」
  • 判断②で「==」の場合 → 入出力⑥「mm の値を印字」 → 終了
  • 判断②で「≠\neq」の場合 → 判断③「m:nm : n」
  • 判断③で「>>」の場合 → 処理④「m−n→mm - n \to m」 → 判断②の直前に合流
  • 判断③で「<<」の場合 → 処理⑤「n−m→nn - m \to n」 → 判断②の直前に合流
解答・解説

正解: エ. 3a=2b3a = 2b

与えられた実行順序に従って、変数 mm と nn の値がどのように変化するかを順番に追跡(トレース)して関係式を導き出します。

処理のトレース

  1. 処理①(a→m,b→na \to m, b \to n)

    • 初期値として m=am = a、n=bn = b が代入されます。
  2. 1回目の判断② →\to 判断③ →\to 処理⑤

    • 判断②で「≠\neq」へ進み、判断③で「<<」(m<nm < n、つまり a<ba < b)と判定されて処理⑤へ進みます。
    • 処理⑤(n−m→nn - m \to n)が実行され、nn の値が更新されます。
    • この時点での値は m=am = a、n=b−an = b - a です。
  3. 2回目の判断② →\to 判断③ →\to 処理④

    • 判断②で「≠\neq」へ進み、判断③で「>>」(m>nm > n、つまり a>b−aa > b - a)と判定されて処理④へ進みます。
    • 処理④(m−n→mm - n \to m)が実行され、mm の値が a−(b−a)=2a−ba - (b - a) = 2a - b に更新されます。
    • この時点での値は m=2a−bm = 2a - b、n=b−an = b - a です。
  4. 3回目の判断② →\to 入出力⑥

    • 判断②で「==」(m=nm = n)と判定されて入出力⑥へ進みます。
    • したがって、この時点の mm と nn の値が等しくなるため、次の等式が成り立ちます。
      2a−b=b−a2a - b = b - a
    • この式を整理すると、以下の関係が得られます。
      3a=2b3a = 2b

よって、正解は エ です。

各選択肢の解説

  • ア:a=2ba = 2b
    • a>ba > b(m>nm > n)となるため、1回目の判断③で処理④へ進みます。その後の判断②で m=nm = n(a−b=ba - b = b)となるため、実行順序は「① →\to ② →\to ③ →\to ④ →\to ② →\to ⑥」となり誤りです。
  • イ:2a=b2a = b
    • 1回目の判断③で処理⑤へ進み、n=b−a=2a−a=an = b - a = 2a - a = a となります。続く2回目の判断②で m=nm = n(a=aa = a)と判定されて入出力⑥へ進むため、実行順序は「① →\to ② →\to ③ →\to ⑤ →\to ② →\to ⑥」となり誤りです。
  • ウ:2a=3b2a = 3b
    • a>ba > b(m>nm > n)となるため、1回目の判断③で処理④へ進みます。最終的に「① →\to ② →\to ③ →\to ④ →\to ② →\to ③ →\to ⑤ →\to ② →\to ⑥」の順で実行されるため誤りです。
  • エ:3a=2b3a = 2b
    • 上記のトレースの通り、指定された順序で実行されるため正解です(例:a=2,b=3a = 2, b = 3 のとき)。

Spineチーム