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


選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
流れ図X・Yにおける変数iの変化【ITパスポート 解説】
正解の理由
流れ図Xの繰返し指定が「k : 1, 1, 3」であることから、kの取りうる値は順に (初期値1、増分1、終値3)です。開始時のiは1で、繰返し後のiの列が「1 → 3 → 7 → 13」と与えられています。これをひとつずつ見ると、各ステップでの更新は次のようになります。
- k = 1 のとき:1 → 3 なので新しい値は
- k = 2 のとき:3 → 7 なので新しい値は
- k = 3 のとき:7 → 13 なので新しい値は
つまり、i の更新式は で表せます。選択肢のa列でこれに当たるのは「i + 2k」です。
次に流れ図Yの変化列「1 → 5 → 13 → 25」を同じ更新式 に当てはめると、各ステップで必要なkは順に です(1→5:、5→13:、13→25:)。これは初期値2、増分2、終値6、すなわち「k : 2, 2, 6」を意味します。
以上より、a = 、b = 「k : 2, 2, 6」である組合せが正しいため、選択肢は エ です。
解法ステップ
- フローチャートの「変換」ブロックの(注)を確認し、表記が「変数名:初期値,増分,終値」を表すことを理解する。
- 例:
k : 1, 1, 3は k = 1,2,3 の順で繰返す。
- 例:
- 流れ図Xの実行結果(iの変化)を見て、更新式(a)を逆算する。
- 1→3→7→13 から を導く。
- 流れ図Yにその更新式を適用して、k の値列を求める。
- 1→5→13→25 から k = 2,4,6。よって b は
k : 2, 2, 6。
- 1→5→13→25 から k = 2,4,6。よって b は
- 選択肢と照合して、a と b の組合せが一致する選択肢を選ぶ(エ)。
選択肢別の誤答解説
- ア(a: 2i + k、b: k : 1, 3, 7)
- a が の場合、初回は で が1なら3になるが、次以降の値は与えられた列と合いません。また b の
k : 1,3,7は「初期1、増分3、終値7」で k は 1,4,7 と跳ぶため流れ図Yの与えられた列を再現できません。
- a が の場合、初回は で が1なら3になるが、次以降の値は与えられた列と合いません。また b の
- イ(a: 2i + k、b: k : 2, 2, 6)
- b は正しい形だが、a が だと流れ図Xの列 1→3→7→13 を作れません(例えば初回は でも次は になり7と不一致)。
- ウ(a: i + 2k、b: k : 1, 3, 7)
- a は正しいが、b が
k : 1, 3, 7(k = 1,4,7)だと流れ図Yの i の変化 1→5→13→25 を再現できません(1→? となる)。
- a は正しいが、b が
- エ(a: i + 2k、b: k : 2, 2, 6)
- a と b の両方が与えられた変化列と一致するため正解(本文中で解説した通り)。
よくある誤解
- 「k : 初期, 増分, 終値 は '終値まで含まない'」と考える誤解。図の注記通り終値は含む(終値に達するまで増分で進む)と考えるのが普通です。
- 式の読み間違い( と を逆にする)。見た目が似ているため計算して確かめる習慣をつけるとよいです。
- 繰返しの順序を逆に考える(k の順番を逆に読む)。初期値→増分で増える方向だと明確に理解すること。
補足コラム
- フローチャート中の「変換」ブロックはループ(繰返し)を表しています。注記にある「変数名:初期値,増分,終値」はプログラミングでいう for 文(例:for k = 初期値 to 終値 step 増分)のようなものです。
- 今回のように i が繰返しごとに前の値に何かを足す更新則(加算による更新)がある場合、最終値は初期の i に「繰返しで使われた k の合計 × 係数」を足したものになります。具体的には今回なら i_final = i_initial + 2×(sum of k の値)。
FAQ
Q1. 「終値は必ず含む」の根拠は?
A1. 問題文の注記に「初期値,増分,終値を示す」とあります。一般的なフローチャート表記では終値は含む(終値に到達するまで増分で進める)扱いです。問題の与えられた値列がこれに合うか確認してください。
A1. 問題文の注記に「初期値,増分,終値を示す」とあります。一般的なフローチャート表記では終値は含む(終値に到達するまで増分で進める)扱いです。問題の与えられた値列がこれに合うか確認してください。
Q2. なぜまず流れ図Xからaを求めるのがよいのですか?
A2. 流れ図Xは具体的に k の値が与えられているため、更新式(a)を確定しやすいからです。一度更新式がわかれば、流れ図Yでは b(ループ指定)を逆算できます。
A2. 流れ図Xは具体的に k の値が与えられているため、更新式(a)を確定しやすいからです。一度更新式がわかれば、流れ図Yでは b(ループ指定)を逆算できます。
Q3. 見慣れない表記(k : 1,1,3)を見たときの心構えは?
A3. 「初期値、増分、終値」の順で読み、実際に k の値列を書き出してみると理解しやすいです(例:1, 2, 3)。
A3. 「初期値、増分、終値」の順で読み、実際に k の値列を書き出してみると理解しやすいです(例:1, 2, 3)。
関連キーワード: フローチャート、ループ、初期値、増分、終値、変数更新、アルゴリズム、繰返し、演算式、逆算解法

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

