令和3年度 ITパスポート試験 公開問題 問74
テクノロジアルゴリズム擬似言語・プログラム読解
流れ図Xで示す処理では,変数 の値が,1 → 3 → 7 → 13 と変化し,流れ図Yで示す処理では,変数 の値が,1 → 5 → 13 → 25 と変化した。図中の a,b に入れる字句の適切な組合せはどれか。

図の説明テキスト
〔流れ図X〕
- 端子: 開始
- 処理: に1を格納する
- ループ開始 (変換): (注)
- 処理: a を計算し,その結果を に格納する
- ループ終了 (変換)
- 端子: 終了
〔流れ図Y〕
- 端子: 開始
- 処理: に1を格納する
- ループ開始 (変換): b (注)
- 処理: a を計算し,その結果を に格納する
- ループ終了 (変換)
- 端子: 終了
(注) ループ端の繰返し指定は,変数名 : 初期値,増分,終値を示す。
解答・解説
正解: エ. a: , b:
[a] の特定(流れ図X)
流れ図Xでは、 の初期値は1で、ループ変数 は初期値1、増分1、終値3で変化します()。
ループの各反復での と の値をトレースして、[a] に当てはまる式を確認します。
1回目のループ()
処理前の は1です。計算結果として は3になる必要があります。
(一致)
(一致)2回目のループ()
処理前の は3です。計算結果として は7になる必要があります。
(一致)
(不一致)
この時点で、[a] に当てはまる式は であることがわかります。(3回目のループ の場合も、 となり一致します。)
[b] の特定(流れ図Y)
流れ図Yでは、[a] の処理が であることがわかりました。
変数 の値は 1 → 5 → 13 → 25 と変化しています。この変化から、各ループでの の値を逆算します。
1回目のループ
処理前の は1、処理後は5です。
より 、したがって 。2回目のループ
処理前の は5、処理後は13です。
より 、したがって 。3回目のループ
処理前の は13、処理後は25です。
より 、したがって 。
の値は 2、4、6 と変化しているため、ループ指定(変数名 : 初期値, 増分, 終値)は となります。
各選択肢の解説
- ア:[a] の式()および [b] のループ指定()のどちらも誤りです。
- イ:[a] の式()が誤りです。2回目のループで の値が一致しません。
- ウ:[b] のループ指定()が誤りです。この指定では の値の変化が一致しません。
- エ:正しい組合せです。