
【基本情報】科目B トレース表の書き方|変数の変化を追う基礎演習
「解説を読めば分かるのに、自分でプログラムを追うと答えが変わる……」
そんなときは、計算を速くする前に、トレース表の書き方を整えましょう📚 トレース表は、処理を実行するたびに変数の値を記録する表です。
今回は、代入・条件分岐・繰返しの3つを、小さな例題で練習します。読み終わったら、実行順を崩さず、現在の値を使って計算できる状態を目指します。
1.今回使う表記
この記事の問題はIT資格攻略chのオリジナル基礎演習です。説明用に型宣言などを省いた擬似言語を使います。←は代入、=は比較、≠は「等しくない」を表します。forの終点は含みます。配列の要素番号は、特記がなければ1から始まります。公式問題では、その問題の定義と表記を確認してください。
変数や代入の意味が不安な方は、先に擬似言語入門を確認してください。
2.表に書くのは「その行を実行した直後」
まず、次の処理を追います。
① x ← 3
② y ← 2
③ x ← x + y
④ y ← x × 2表の列は「実行した行」「x」「y」の3つ。まだ値を代入していない変数は「—」と書きます。これは0という意味ではなく、今回の追跡では未設定という印です。

③では右辺の3+2を先に計算し、その結果の5をxに入れます。④で使うxは、最初の3ではなく、更新された5です。答えはx=5、y=10。
更新されなかった変数も、初めのうちは値をそのまま書くと確認しやすくなります。
3.2つの代入は同時に行われない
x ← 4
y ← 7
x ← y
y ← x「xとyが入れ替わる」と感じたら注意です。x←yを実行した時点で、xも7になります。次のy←xでは、この7を使うため、最後はx=7、y=7です。
交換したいときは、元のxを別の変数に残します。
x ← 4
y ← 7
temp ← x
x ← y
y ← temptempに4を保存してからxを書き換えるので、最後はx=7、y=4。表にtempの列を足せば、元の値がどこに残っているか見えます。
4.if文は実行した枝だけ追う
x ← 6
y ← 1
if (x が 5 より大きい)
y ← y + x
else
y ← y - x
endif
x ← y + 2判定時点のxは6。6>5は真なので、y←y+xだけを実行します。

両方の枝を計算してはいけません。真偽を決めたら、実行しない枝に斜線を引くつもりで読みます。なお、xが5なら「5より大きい」は偽です。境界の値にも注意しましょう。
5.ループは「いつの値か」をそろえる
sum ← 0
for (i を 1 から 4 まで 1 ずつ増やす)
sum ← sum + i
endforループでは、処理前と処理後を混ぜないことが大切です。ここでは「1回分の加算が終わった直後」のsumを記録します。

終点の4を含むので、加算は4回です。sumの初期値0も先に書きましょう。答えはsum=10です。
6.whileは終了の判定も書く
x ← 2
while (x が 10 より小さい)
x ← x × 2
endwhile

最後のxは8ではなく16です。x=8の時点では条件が真なので、もう1回実行します。16になってから次の判定で終了します。
「条件の上限が10だから、結果も10以下」とは限りません。条件を調べる時点と、値を更新する時点を分けて追いましょう。
7.確認問題3問
答えを見る前に、紙やメモに途中の値を書いてください。
問1 代入の順番
a ← 2
b ← 5
a ← a + b
b ← a - b最後のaとbはいくつでしょうか?
問2 条件分岐
x ← 5
y ← 0
if (x が 5 より大きい)
y ← 10
else
y ← 20
endif最後のyはいくつでしょうか?
問3 条件と更新
x ← 1
while (x が 5 以下)
x ← x + 2
endwhile本体の実行回数と、最後のxを求めてください。
8.確認問題の解答と復習ポイント
問1:a=7、b=2。aは2+5で7に更新されます。bは更新後のaを使って7-5=2です。b=−3なら、更新前のaを使っていないか確認しましょう。
問2:y=20。5>5は偽なのでelse側を実行します。「より大きい」と「以上」の読み違いに注意です。
問3:3回、x=7。1→3→5→7と変化します。x=5でも「5以下」は真なので実行し、7で初めて条件が偽になります。
9.間違いを減らす4つの確認
右辺は現在の値で計算したか
代入を上から順に実行したか
ifで実行しない枝を飛ばしたか
whileで最後の偽の判定まで追ったか
慣れたら記録する列を減らしても大丈夫です。ただし、自分がよく間違える変数や条件は残してください。
次は「配列と添字」の演習へ。変数の列に加えて、配列の位置と値を整理します。基本情報の無料記事まとめから続けて学べます。
公式の表記を確認したい方はこちら:IPA 科目Bサンプル問題。