ITパスポート過去問 令和3年度(2021年)問74
流れ図Xで示す処理では,変数iの値が,1→3→7→13と変化し,流れ図Yで示す処理では,変数iの値が,1→5→13→25と変化した。図中のa,bに入れる字句の適切な組合せはどれか。


選択肢
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
流れ図Xでのiの変化と、ループ端の繰返し指定(kの初期値・増分・終値)から計算式aを特定します。次に、その計算式aを流れ図Yにも適用し、iが指定どおりに変化するために必要なkの並びを求め、ループ条件b(kの初期値・増分・終値)を決定します。
Point
この問題は、流れ図の繰返し指定(初期値、増分、終値)を読み取り、ループ変数kの値を当てはめて処理aを計算し、変数iの変化と一致する式と繰返し条件を特定する力を確認します。
解くために必要な知識
この問題を解くには、流れ図の繰返し指定の読み方と、変数の値を順に計算して確認する方法が必要です。
用語の整理
| 用語 | 意味 |
|---|---|
| 流れ図(フローチャート) | 処理の手順を図で表したものです。処理、繰返しなどの記号で構成されます。 |
| ループ(繰返し処理) | 同じ処理を決められた回数、または条件を満たす間、繰り返す処理です。 |
| 変数 | 処理の途中で値が変わる入れ物です。例ではiやkが該当します。 |
| トレース | 実際に値を代入して、処理の順に計算し、変数の変化を確認することです。 |
図表の読み取り方
繰返し指定(ループ端)の形式
「変数名:初期値, 増分, 終値」で表されます。
| 指定例 | kの変化 | ループ回数 |
|---|---|---|
| k:1, 1, 3 | 1, 2, 3 | 3 |
| k:2, 2, 6 | 2, 4, 6 | 3 |
| k:1, 3, 7 | 1, 4, 7 | 3 |
ループ内の処理の読み方
ループの各回で「aを計算し、その結果をiに格納する」ため、次の形で更新されます。
- 更新後i = a(更新前iと、その回のkを使って計算した結果)
解くための基本手順
1. kの取り得る値を確定する
繰返し指定からkの列(例:1, 2, 3)を作ります。
2. 候補の式aを代入してiの変化を計算する
表にして、問題文の変化と一致するかを確認します。
3. もう一方の流れ図でも同じaで成り立つbを選ぶ
iの増え方(差分)からkの列を逆算し、繰返し指定を決めます。
問題の解法手順
この問題では、流れ図Xでaを確定し、流れ図Yでbを確定します。
図の読み取り
繰返し指定の意味
ループ端の指定は「変数名:初期値, 増分, 終値」です。
例:k:1, 1, 3 は k = 1, 2, 3 の順に変化し、合計3回処理を行います。
手順1:流れ図Xでaを決める
流れ図Xでは k = 1, 2, 3 で、iが 1→3→7→13 と変化します。
a = i+2k の確認
| 回数 | k | 更新前i | 計算 i+2k | 更新後i |
|---|---|---|---|---|
| 1 | 1 | 1 | 1 + 2×1 = 3 | 3 |
| 2 | 2 | 3 | 3 + 2×2 = 7 | 7 |
| 3 | 3 | 7 | 7 + 2×3 = 13 | 13 |
| 一致します。 |
a = 2i+k が合わないことの確認
2回目で i = 2×3 + 2 = 8 となり、7と一致しません。
よって a = i+2k です。
手順2:流れ図Yでbを決める
流れ図Yでは iが 1→5→13→25 です。
各回の増分は 4, 8, 12 なので、a = i+2k の「2k」が 4, 8, 12 になる必要があります。
kの値
2k = 4, 8, 12 より、k = 2, 4, 6 です。
よって繰返し指定は k:2, 2, 6 になります。
結論として、正解はエです。
選択肢ごとの解説
- ア:不正解
a=2i+kは流れ図Xでk=2のときi=8となり、iの変化1→3→7→13と一致しません。またb=k:1,3,7(k=1,4,7)でも流れ図Yの最初の更新が5になりません。
- イ:不正解
b=k:2,2,6(k=2,4,6)は流れ図Yのkの並びとしては適切ですが、a=2i+kが流れ図Xの変化1→3→7→13と一致しないため不正解です。
- ウ:不正解
a=i+2kは流れ図Xの変化1→3→7→13と一致します。しかしb=k:1,3,7(k=1,4,7)では流れ図Yの最初の更新がi=1+2×1=3となり、1→5→13→25と一致しません。
- エ:正解
a=i+2kは流れ図Xでk=1,2,3のときiが1→3→7→13となります。b=k:2,2,6はk=2,4,6を表し、同じaで流れ図Yはiが1→5→13→25となるため正解です。
まとめ
流れ図Xでのiの変化と、ループ端の繰返し指定(kの初期値・増分・終値)から計算式aを特定します。次に、その計算式aを流れ図Yにも適用し、iが指定どおりに変化するために必要なkの並びを求め、ループ条件b(kの初期値・増分・終値)を決定します。
テクノロジ系 > 基礎理論 > アルゴリズムとプログラミング
a=2i+kは流れ図Xでk=2のときi=8となり、iの変化1→3→7→13と一致しません。またb=k:1,3,7(k=1,4,7)でも流れ図Yの最初の更新が5になりません。
b=k:2,2,6(k=2,4,6)は流れ図Yのkの並びとしては適切ですが、a=2i+kが流れ図Xの変化1→3→7→13と一致しないため不正解です。
a=i+2kは流れ図Xの変化1→3→7→13と一致します。しかしb=k:1,3,7(k=1,4,7)では流れ図Yの最初の更新がi=1+2×1=3となり、1→5→13→25と一致しません。
a=i+2kは流れ図Xでk=1,2,3のときiが1→3→7→13となります。b=k:2,2,6はk=2,4,6を表し、同じaで流れ図Yはiが1→5→13→25となるため正解です。