流れ図Xで示す処理では,変数 i の値が,1→3→7→13と変化し,流れ図Yで示す処理では,変数 i の値が,1→5→13→25と変化した。図中の a,b に入れる字句の適切な組合せはどれか。 〔流れ図X〕 開始 → i に1を格納する → 変換(ループ端) k:1,1,3 (注) → [ a ]を計算し,その結果を i に格納する → 変換(ループ端) → 終了 〔流れ図Y〕 開始 → i に1を格納する → 変換(ループ端) [ b ] (注) → [ a ]を計算し,その結果を i に格納する → 変換(ループ端) → 終了 (注)ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。
令和3年度 ITパスポート試験 問74
この問題の解説と、これまでの解答の記録です。
問74
頻出度★★☆
解説
問 74ループ端の繰返し指定「変数名:初期値,増分,終値」の読み方
不正解ア
a=2i+k が誤り。流れ図Xで検算すると1回目は 2×1+1=3 で合うが、2回目は 2×3+2=8 となり、実際の値 7 と食い違う。a の式が成立しない時点で不適。b=k:1,3,7 も後述のとおり誤り。
不正解イ
b=k:2,2,6 は正しいが、a=2i+k が誤り。アと同じく流れ図Xの2回目で 2×3+2=8 となり 7 にならない。a が合わないので全体として不適。
不正解ウ
a=i+2k は正しいが、b=k:1,3,7 が誤り。これは k を初期値1、増分3、終値7、すなわち k=1,4,7 と回す指定を意味する。流れ図Yの1回目に当てはめると 1+2×1=3 となり、実際の 5 にならない。Yを再現できないので不適。
- エ
正解 まず a を流れ図Xから決める。Xでは i の初期値が1、ループ端の指定が k:1,1,3(k は初期値1、増分1、終値3)なので k=1,2,3 と3回回る。a=i+2k を各回に当てはめると、1回目 1+2×1=3、2回目 3+2×2=7、3回目 7+2×3=13 となり、i の変化 1→3→7→13 に完全に一致する。よって a=i+2k。次に b を流れ図Yから決める。Yも同じ a=i+2k を使い、i は 1→5→13→25 と変化する。各遷移に必要な k を逆算すると、1→5 は 5=1+2k より k=2、5→13 は k=4、13→25 は k=6。したがって k は 2 から 2 ずつ増えて 6 まで、すなわち b=k:2,2,6 となる。a=i+2k と b=k:2,2,6 の両方を満たすのはエ。
ここがポイント
- ループ端の繰返し指定「変数名:初期値,増分,終値」の読み方。例えば k:2,2,6 は k を 2 から 2 ずつ増やし 6 まで回すので k=2,4,6 の3回を表す。
- 値の変化列から式やパラメータを逆算する手法。既知の遷移(前の i → 次の i)に候補式を代入して検算し、全ての回で一致するものだけを残す。
用語