令和3年度 問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
答えと解説を見る
✓ これが正解エ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ずつ進む指定です。
ほかの選択肢はなぜ違うのか
- ア2i + k k:1, 3, 7:元の値を2倍してkを足す式と、1から7まで3ずつ進む指定の組合せです。一つ目の流れ図で確かめると、最初の値1から2倍して1を足すと3になり合いますが、次に3を2倍して2を足すと8となり、7になりません。一つ目で外れます。
- イ2i + k k:2, 2, 6:元の値を2倍してkを足す式と、2から6まで2ずつ進む指定の組合せです。繰返しの指定は二つ目の流れ図に合いますが、アルゴリズムの式のほうが合いません。一つ目の流れ図で3の次が7にならないため、この組合せは選べません。
- ウi + 2k k:1, 3, 7:元の値にkの2倍を足す式は正しいのですが、繰返しの指定が合いません。1から7まで3ずつ進むとkは1、4、7となり、増え方は2、8、14になります。二つ目の流れ図の4、8、12とは食い違うので、この組合せは指定のほうが外れます。
この問題の用語
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。同じ問題でも手順によって、処理にかかる時間や必要な記憶量が変わります。
出典:令和3年度 ITパスポート試験 問74(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)