基礎理論|平成22年度 秋期 ITパスポート試験 問69
二つの変数 x と y に対して,次の手続を (1) から順に実行する。処理が終了したとき,x の値は幾らになるか。
〔手続〕
1. x に 2 を代入し,y に 3 を代入する。
2. y の値から 1 を引いたものを y に代入する。
3. x の値と y の値を加えたものを x に代入する。
4. y ≠ 1 なら手続 (2) に戻り,y = 1 なら処理を終了する。
- 4
- ✓ これが正解5
- 7
- 8
解説
判じるのが足した後なので、最後の一周も足し終えます。
繰り返す手続は、表を作って一行ずつ書くと外れません。初めに二と三を、それぞれの入れ物へ置きます。一周目では、後ろの入れ物から一を引いて二になりました。前の入れ物に足すと、二と二で四になります。後ろがまだ一ではないので、もう一周まわりました。二周目では、後ろから一を引いて一になります。前に足すと、四と一で五になりました。ここで後ろが一なので、そこで終わります。だから五という数を挙げた肢が当たりました。判じるのが足した後に置かれているのが要です。後ろが一になっても、その周の足し算は済んでいました。足さないと読むと、四という数で止まってしまいます。余分にまわしたと読むと、より大きな数が出ました。表に書けば取り違えません。終わりの条件を読みます。シラバスも、このアルゴリズムの表し方を求めています。
ほかの選択肢はなぜ違うのか
- 四という数を挙げた肢が、こちらのほうです。一周目で止めた形に、ちょうど当たります。ところが後ろの入れ物は、まだ二のままでした。一ではないので、もう一周まわることになります。一周ぶん足りません。止める場所が早いのです。
- 七という数を挙げた肢が、こちらに当たります。余分にもう一周まわした形に近くなります。けれども後ろが一になった時点で終わりました。そこから先へは、進みませんでした。回しすぎた形です。判じ方を読み違えています。
- 八という数を挙げた肢が、こちらに当たります。さらに多くまわした形になっていました。ところが後ろの入れ物は、二回で一に着きます。三周目には入らずに、そこで終わりました。最も多く回した形です。終わりの条件が読めていません。
この問題に関係する言葉
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。書き表したプログラムと違い、それ自体は著作権で守られません。
出典:平成22年度 秋期 ITパスポート試験 問69(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)