ITパスポート 平成22年度 春期 問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
答えと解説
✓ これが正解イ TMP ← A → A ← B → B ← TMP
解説
退避した中身を使って戻すので、最後は控えから移します。
変数 A と B の中身を入れ替えるには、退避させる場所が必要です。直に移すと、片方の中身が上書きされて消えてしまうからです。だからまず、TMP ← A で A の中身を TMP へ移します。次に、A ← B で B の中身を A へ移します。最後に、B ← TMP で TMP に取ってあった中身を B へ戻します。この三つの手順を並べた肢が正解です。最後を TMP からにする点が、いちばんの要です。最後を B ← A にする手順は、同じ値が二つ並ぶだけです。A はすでに B の値に書き換わっているので、入れ替わりません。先に TMP ← B とする手順も、途中で食い違います。A ← B で A の中身が上書きされ、元の A の値が失われます。つまりどの変数を、どの順で移すかが決め手です。シラバスも、流れ図による表現を学ぶよう求めています。
ほかの選択肢の解説
- ア TMP ← A → A ← B → B ← A:三つ目を B ← A とした肢です。一つ目と二つ目は正しいものの、その時点の A には元の B の値が入っています。結局 A と B の両方が元の B の値になり、交換は成立しません。
- ウ TMP ← B → A ← B → B ← TMP:最初に TMP ← B とする手順です。次の A ← B で A の元の値が上書きされて失われます。最後の B ← TMP でも B は元の値のままで、入れ替わりません。
- エ TMP ← B → A ← B → B ← A:最初に TMP ← B とし、最後も B ← A とする手順です。A の元の値は A ← B で失われ、TMP も使われません。A と B が同じ値になってしまいます。
関連用語
- 流れ図アルゴリズム、つまり処理の手順を図で表す方法の一つです。
出典:平成22年度 春期 ITパスポート試験 問53(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
同じ分野の問題
誤りを見つけたら報告する