アルゴリズムとプログラミング|令和3年度 ITパスポート試験 問74
流れ図Xで示す処理では,変数 i の値が,1→3→7→13 と変化し,流れ図Yで示す処理では,変数 i の値が,1→5→13→25 と変化した。図中のa,bに入れる字句の適切な組合せはどれか。
〔流れ図〕(原典は JIS の流れ図記号で描かれた図が2つ並ぶ。処理の順に書き起こしたもの)
```
〔流れ図X〕 〔流れ図Y〕
開始 開始
↓ ↓
i に1を格納する i に1を格納する
↓ ↓
┌─ 変換 ───────────┐ ┌─ 変換 ───────────┐
│ k:1, 1, 3(注) │ │ [ b ](注) │
│ ↓ │ │ ↓ │
│ [ a ] │ │ [ a ] │
│ を計算し,その結果を │ │ を計算し,その結果を │
│ i に格納する │ │ i に格納する │
│ ↓ │ │ ↓ │
└─ 変換 ───────────┘ └─ 変換 ───────────┘
↓ ↓
終了 終了
(注)ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。
```
| a | b | |
|---|---|---|
| ア | 2i + k | k:1, 3, 7 |
| イ | 2i + k | k:2, 2, 6 |
| ウ | i + 2k | k:1, 3, 7 |
| エ | i + 2k | k:2, 2, 6 |
- 2i + k k:1, 3, 7
- 2i + k k:2, 2, 6
- i + 2k k:1, 3, 7
- ✓ これが正解i + 2k k:2, 2, 6
解説
差を見ると式が決まり、そこから繰返しの指定も決まります。
変数の値がどう増えたかを、差で見ていくと式が決まります。一つ目の流れ図では、値が1から3、3から7、7から13と変わっており、増え方は2、4、6です。繰返しの指定は、初期値1、増分1、終値3なので、kは1、2、3と進みます。増え方はkの2倍になっているので、計算しているのは、元の値にkの2倍を足す式だと分かります。二つ目の流れ図では、値が1から5、5から13、13から25と変わり、増え方は4、8、12です。同じ式であれば、kは2、4、6と進む必要があるので、初期値2、増分2、終値6という指定になります。増え方そのものを取り出して並べてみると、式の中でkが何倍になって入っているのかがすぐ分かります。よって適切な組合せは、元の値にkの2倍を足す式と、2から6まで2ずつ進む指定です。
ほかの選択肢はなぜ違うのか
- 元の値を2倍してkを足す式と、1から7まで3ずつ進む指定の組合せです。一つ目の流れ図で確かめると、最初の値1から2倍して1を足すと3になり合いますが、次に3を2倍して2を足すと8となり、7になりません。一つ目で外れます。
- 元の値を2倍してkを足す式と、2から6まで2ずつ進む指定の組合せです。繰返しの指定は二つ目の流れ図に合いますが、アルゴリズムの式のほうが合いません。一つ目の流れ図で3の次が7にならないため、この組合せは選べません。
- 元の値にkの2倍を足す式は正しいのですが、繰返しの指定が合いません。1から7まで3ずつ進むとkは1、4、7となり、増え方は2、8、14になります。二つ目の流れ図の4、8、12とは食い違うので、この組合せは指定のほうが外れます。
この問題に関係する言葉
- 流れ図
- 変数
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。書き表したプログラムと違い、それ自体は著作権で守られません。
出典:令和3年度 ITパスポート試験 問74(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くならアルゴリズムとプログラミングへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)