マナビング基本情報技術者

流れ図の分岐条件を初期値からどう導くか

基本情報技術者試験 令和5年度 問11 / システム開発技術 › ソフトウェア構築

過去問にチャレンジ

令和5年度 問11

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

令和5年度 問11の図
  1. ア

    a=2b

  2. イ

    2a=b

  3. ウ

    2a=3b

  4. エ

    3a=2b

会話形式の解説

講師講師
この問題では、指定された順に進むための条件を、分岐のたびに確かめます。処理を通ったら、その後の値で次の比較をします。
受験者受験者
最初に⑤へ進むので、初期値はm=a、n=bで、a<bが必要ですね。
講師講師
そうです。⑤ではnからmを引くので、その後の値はm=a、n=b-aです。
受験者受験者
次は④へ進みます。そのときはa>b-aでなければなりませんね。
講師講師
④を通るとm=a-(b-a)=2a-bです。nはb-aのままです。最後に②から⑥へ進むには、二つの値が等しくなります。
受験者受験者
つまり、2a-b=b-aです。整理すると3a=2bになります。
講師講師
その関係が正解です。ほかの候補も、指定された順序からどこで外れるかを確かめましょう。
受験者受験者
a=2bなら、最初からm>nです。⑤ではなく④へ進んでしまいます。
講師講師
2a=3bもa>bとなるので、同じく最初の③から④へ進みます。
受験者受験者
2a=bなら最初は⑤へ進めますが、⑤の後はn=b-a=aです。そこでm=nとなり、④を通らず⑥へ進みます。
講師講師
正解の関係は、例えばa=2、b=3で確かめられます。⑤の後は(m, n)=(2, 1)、④の後は(1, 1)となり、指定された順に進みます。
受験者受験者
各分岐を初期値だけで判断せず、引き算した後の値で比較し直すのですね。
講師講師
はい。特に、最後に②から⑥へ進む条件はm=nです。そこから式を立てると、初期値の関係を求められます。

まとめ

最初に⑤へ進むにはa<bが必要です。⑤の後は(m, n)=(a, b-a)となり、次に④を通ると(m, n)=(2a-b, b-a)になります。最後に②から⑥へ進むには両者が等しいため、2a-b=b-a、すなわち3a=2bです。正解はエです。

解答・解説

正解はエです

この問題のテーマ

流れ図を指定された順に通るための初期値の関係を問う問題です。

解き方の考え方

①で m=a、n=b とします。最初に⑤へ進むには a<b が必要で、⑤を通ると n=b-a になります。次に④へ進むには a>b-a が必要です。④の後に②から⑥へ進む条件を立てると、2a-b=b-a、したがって 3a=2b です。

選択肢ごとの解説

  1. ×ア  a=2b
    a=2b では、正の整数 b に対して最初から m>n です。③から④へ進むため、指定された最初の⑤を通りません。
  2. ×イ  2a=b
    2a=b なら最初は⑤へ進みますが、n から a を引いた後は m=n です。②から⑥へ進むため、指定された④を通りません。
  3. ×ウ  2a=3b
    2a=3b では、最初の比較で m>n です。③から④へ進み、求める順序と一致しません。
  4. ○エ  3a=2b
    3a=2b は、最後に m と n が等しくなる条件に一致します。例えば a=2、b=3 なら、⑤の後は (m, n)=(2, 1)、④の後は (1, 1) となり、②から⑥へ進むことも確かめられます。

POINT

  • 流れ図は、各処理の直後の値を追ってから次の分岐を判定します。
  • ③では m<n なら⑤、m>n なら④へ進みます。
  • ②では m=n になったときに⑥へ進みます。

※出典:令和5年度 基本情報技術者試験 科目A 問11(一部改変)