流れ図の分岐条件を初期値からどう導くか
基本情報技術者試験 令和5年度 問11 / システム開発技術 › ソフトウェア構築
過去問にチャレンジ
次の流れ図において, ①→②→③→⑤→②→③→④→②→⑥ の順に実行させるために,①においてmとnに与えるべき初期値aとbの関係はどれか。ここで,a,bはともに正の整数とする。

- ア
a=2b
- イ
2a=b
- ウ
2a=3b
- エ
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 です。
選択肢ごとの解説
- ×ア a=2ba=2b では、正の整数 b に対して最初から m>n です。③から④へ進むため、指定された最初の⑤を通りません。
- ×イ 2a=b2a=b なら最初は⑤へ進みますが、n から a を引いた後は m=n です。②から⑥へ進むため、指定された④を通りません。
- ×ウ 2a=3b2a=3b では、最初の比較で m>n です。③から④へ進み、求める順序と一致しません。
- ○エ 3a=2b3a=2b は、最後に m と n が等しくなる条件に一致します。例えば a=2、b=3 なら、⑤の後は (m, n)=(2, 1)、④の後は (1, 1) となり、②から⑥へ進むことも確かめられます。
POINT
- 流れ図は、各処理の直後の値を追ってから次の分岐を判定します。
- ③では m<n なら⑤、m>n なら④へ進みます。
- ②では m=n になったときに⑥へ進みます。
