流れ図の繰返し指定と更新式をどう読み解くか
ITパスポート試験 令和3年度 問74 / アルゴリズムとプログラミング › アルゴリズムとプログラミング
過去問にチャレンジ
流れ図Xで示す処理では,変数 i の値が,1→3→7→13と変化し,流れ図Yで示す処理では,変数 i の値が,1→5→13→25と変化した。図中のa,bに入れる字句の適切な組合せはどれか。


- ア
a:2i+k b:k:1, 3, 7
- イ
a:2i+k b:k:2, 2, 6
- ウ
a:i+2k b:k:1, 3, 7
- エ
a:i+2k b:k:2, 2, 6
会話形式の解説
講師繰返し指定の読み方と、iが1回ごとにいくつ増えたかに注目します。
受験者繰返し指定の中央の数を、次のkの値と読んでしまいそうです。
講師三つの値は初期値、増分、終値の順です。Xではkが1、2、3と変わります。
受験者Xのiは順に2、4、6増えています。kの2倍を足す形でしょうか。
講師そのとおりです。i+2kなら、1から3、3から7、7から13へ進みます。
受験者2i+kでも最初は3になるので、迷います。
講師2回目を計算すると、2×3+2=8です。指定された7と違うので、2i+kを使う二つの組合せは外れます。
受験者Yでは増加量が4、8、12です。同じ式ならkは2、4、6ですね。
講師はい。初期値2、増分2、終値6という指定が必要です。
受験者初期値1、増分3、終値7という指定だと、kは1、4、7になりますね。
講師その場合、i+2kで計算したYは1→3→11→25となり、途中の値が合いません。
受験者更新式だけでなく、繰返し指定も途中の値まで確認するのですね。
講師はい。XとYの両方に一致するのは、aがi+2k、bが初期値2・増分2・終値6の組合せ、エです。
まとめ
繰返し指定の三つの値は、初期値、増分、終値を表します。Xではkが1、2、3と変わり、iの増加量は2、4、6なので、更新式はi+2kです。Yの増加量4、8、12に対応するkは2、4、6です。したがって、正解はエです。
解答・解説
正解はエです
この問題のテーマ
繰返しで変化する k の値と、変数 i の更新式を流れ図から読み取る問題です。
解き方の考え方
図の繰返し指定は「変数名:初期値,増分,終値」を表します。Xでは k が1、2、3と変わり、i の増加量は順に2、4、6です。したがって a は i+2k です。Yでも同じ式を使うので、増加量4、8、12に対応する k は2、4、6となり、b は「k:2,2,6」です。
選択肢ごとの解説
- ×ア a:2i+k b:k:1, 3, 7a の「2i+k」では、Xの最初の更新後は3ですが、次は 2×3+2=8 となり、指定された7に一致しません。また、b の「k:1,3,7」では k は1、4、7と変わります。
- ×イ a:2i+k b:k:2, 2, 6b の「k:2,2,6」なら、Yで必要な k=2、4、6を得られます。しかし、a の「2i+k」をXに使うと2回目の更新後が8となるため、組合せとしては適切ではありません。
- ×ウ a:i+2k b:k:1, 3, 7a の「i+2k」は、Xの値の変化に一致します。しかし、b の「k:1,3,7」では k が1、4、7となり、Yの i は1→3→11→25です。途中の値が指定された変化と異なります。
- ○エ a:i+2k b:k:2, 2, 6a の「i+2k」でXを計算すると、1+2×1=3、3+2×2=7、7+2×3=13です。b の「k:2,2,6」でYを計算すると、1+2×2=5、5+2×4=13、13+2×6=25です。どちらも指定された変化と一致します。
補足
「k:1,3,7」の中央の3は、次の値ではなく増分です。そのため k は1、4、7と変わります。
POINT
- 繰返し指定の三つの値は、初期値、増分、終値の順です。
- Xの k は1、2、3と変わります。
- 更新前後の i の差を見ると、更新式を絞れます。
- 候補は最終値だけでなく、途中の値まで検算します。
