基礎理論|平成22年度 春期 ITパスポート試験 問53
変数 A と B に格納されているデータを入れ替えたい。データを一時的に格納するための変数を TMP とすると,データが正しく入れ替わる手順はどれか。ここで “x ← y” は,y のデータで x の内容を置き換えることを表す。
〔選択肢の図について〕原典では選択肢が3つの箱を上から矢印でつないだ流れ図で示されている(当課が上から順に字にして書き起こしたもの)。
- TMP ← A → A ← B → B ← A
- ✓ これが正解TMP ← A → A ← B → B ← TMP
- TMP ← B → A ← B → B ← TMP
- TMP ← B → A ← B → B ← A
解説
退避した中身を使って戻すので、最後は控えから移します。
二つの入れ物の中身を入れ替えるには、避難させる場所が要ります。直に移すと、片方の中身が上書きされて消えてしまうからでした。だからまず、一方の中身を控えの入れ物へ移します。次に、もう一方の中身を空いた入れ物へ移しました。最後に、控えに取ってあった中身を残った入れ物へ戻します。この三つの手順を並べた肢が当たりました。最後を控えからにする点が、いちばんの要になります。最後に元の入れ物から移す手順は、同じ値が二つ並ぶだけでした。控えを使っていないので、入れ替わりません。控えへ移す相手を逆にした手順も、途中で食い違います。二つ目の手で上書きされ、控えの中身が意味を失いました。つまりどの中身を、どの順で移すかが決め手になります。シラバスも、流れ図による表現を学ぶよう求めています。
ほかの選択肢はなぜ違うのか
- 最後を元の入れ物から移す手順のほうです。控えへ避難させるところまでは合っていました。ところが最後に、書き換えた側から移しています。同じ値が二つ並ぶだけで、入れ替わりません。控えを使っていませんでした。最後の一手が違います。
- 控えへ移す相手を逆にした手順が、こちらです。二つ目の入れ物を、先に避難させました。ところが次の手で、その入れ物を上書きしています。控えは残りますが、移す先が食い違いました。順が入れ替わっています。戻す先が違いました。
- 控えも順も両方が違う手順が、こちらです。避難させる相手も、最後に移す元も外れていました。控えを取った意味が、どこにも残りません。二つの入れ物が、同じ値になってしまいます。四つの中で最も遠い形です。二重に外れました。
この問題に関係する言葉
- 流れ図
出典:平成22年度 春期 ITパスポート試験 問53(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)