ITパスポート 平成22年度 秋期 問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
答えと解説
✓ これが正解イ 5
解説
判じるのが足した後なので、最後の一周も足し終えます。
繰り返す手続は、表を作って一行ずつ書くと外れません。初めに二と三をそれぞれの入れ物へ置きます。一周目では、後ろの入れ物から一を引いて二になり、前の入れ物に足すと二と二で四になります。後ろがまだ一ではないので、もう一周まわります。二周目では、後ろから一を引いて一になり、前に足すと四と一で五になります。ここで後ろが一なので終わります。だから五という数を挙げた選択肢が正解です。判定が足した後に置かれているのが要で、後ろが一になっても、その周の足し算は済んでいます。足さないと読むと四という数で止まってしまい、足す手続と引く手続の順を取り違えると七という数が出ます。終わりの条件を読み、表に書けば取り違えません。シラバスも、このアルゴリズムの表し方を求めています。
ほかの選択肢の解説
- ア 4:四という数を挙げた選択肢は、一周目で止めた形にちょうどあたります。ところが後ろの入れ物はまだ二のままで、一ではないので、もう一周まわります。止める場所が早く、一周ぶん足りません。
- ウ 7:七という数を挙げた選択肢は、足す手続と引く手続の順を取り違えた形です。先に足すと二と三で五になり、その後で後ろが二へ下がります。もう一周で五と二を足して七になり、そこで終わります。実際は、引いてから足す順に書かれています。
- エ 8:八という数を挙げた選択肢は、後ろの入れ物の値を、引く前の三から足し上げた形です。二へ三と二と一を順に足すとこの数になりますが、実際に足すのは一を引いた後の二と一だけで、引く前の値まで足すと三だけ大きく出ます。
関連用語
出典:平成22年度 秋期 ITパスポート試験 問69(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
同じ分野の問題
誤りを見つけたら報告する