プログラミングの基礎(擬似言語のトレース)
次のプログラムで、x と y の値を入れ替えるつもりで2つの代入文を書いた。実行した後の x と y の値の組はどれか。
整数型: x ← 3, y ← 7
x ← y
y ← x
- Ax = 3, y = 3
- Bx = 7, y = 3
- Cx = 7, y = 7
答えと解説を見る
正解:C. x = 7, y = 7
擬似言語の代入文は、上から順に1つずつ実行されます。x ← y で x は7になり、元の値3はこの時点で失われます。続く y ← x では新しい x の値7が y に入るので、x = 7、y = 7 になります。値を入れ替えるには、t ← x、x ← y、y ← t のように、作業用の変数に元の値を退避してから代入します。
- A. y ← x を先に実行した場合の結果です。このプログラムでは x ← y が先です。
- B. 入れ替えができたと考えた場合の値です。x ← y の時点で元の x の値3は失われています。
- C. 正しい。x ← y で x が7になり、続く y ← x でも7が代入されます。