トレース表の書き方|1行実行したら1行足す【基本情報技術者試験 科目B】

基本情報技術者試験

現行FE シラバス Ver9.2 準拠第2部 定番処理の型 A1最終更新 2026-08-28

科目Bのプログラムは、1行ずつの意味は分かるのに、通して読むと分からなくなります。それは読み方の問題です。ここでは、その解き方 ── トレース表の書き方を身につけます。

第2部 定番処理の型 全27回

A1-1トレース表の書き方A1-2繰返しのトレースA1-3配列のトレースA2-1配列を全部見るA2-2最大・最小を見つけるA2-3探す(線形探索)A2-4入れる・消すA2-52つの配列を突き合わせるA3-12次元配列の走査A3-22次元配列の集計A4-1文字列を1文字ずつA4-2文字列照合A5-1交換して並べるA5-2挿入ソートA6分割して並べるA7-12分探索A7-2ハッシュ表探索A8-1再帰とはA8-2再帰のトレースA9スタックとキューA10-1リストを読むA10-2リストの挿入と削除A11木構造A12木の巡回A13グラフA14AI・データを題材にしたプログラムA15ファイル処理

まず、通しで見る

1分10秒ほどの動画です(音声つき)。トレース表を1枚、最初から最後まで作ります。前半でどの順に、どこへ何を書くかが分かります。後半は本番で時間を落とさないための書き方です。全部のマスを埋めていると、それだけで試験時間が終わります。どこを省いてよいかまで見て、実際に使える形にします。

動画で追いかけるのは、この4行です。

整数型: a ← 3
整数型: b ← 5
整数型: goukei ← a + b
goukei ← goukei × 2

トレース表の作り方(1分21秒・音声つき)

音が出ます。再生できないときは、この下の図と説明で同じ内容を追えます。

ここから、同じ内容を1つずつ確かめていきます。

なぜ、頭の中では追えなくなるのか

電話番号を口頭で言われて、書き留めずに覚えていられるのはせいぜい数桁です。これを「記憶力が悪い」とは言いません。人が一度に置いておける数には、もともと限りがあるからです。

プログラムも同じです。変数が2つのうちは頭で追えます。3つ、4つと増えたところで、こぼれます。

頭の中に a と b の2つは置けるが、goukei・i・tmp はこぼれていく

追えなくなるのは、覚えていられる量の問題

追えなくなるのは、能力の問題ではない

だから 頭の外に書き出します。書き出す先がトレース表です。

試験では、プログラムを読む力と覚えていられる量は別々に問われません。書き出してしまえば、前者だけの勝負になります。

トレース表 ── 左に行、右に変数

形はとても単純です。

2つの部分でできている

左実行した行を、上から順に書く

右そのあとの、それぞれの変数の値を書く

たとえば、次の4行のプログラムを追うとします。

整数型: a ← 3
整数型: b ← 5
整数型: goukei ← a + b
goukei ← goukei × 2

変数は a、b、goukei の3つ。だから右の列は3本用意します。

用意するのは、この形だけ

整数型: a ← 3 / 整数型: b ← 5 / 整数型: goukei ← a + b / goukei ← goukei × 2

左に行、右に変数の数だけ列を立てる

実行した行 a b goukei
1行目
2行目
3行目
4行目

変数は a・b・goukei の3つ。だから右は3本

あとは、上から1行ずつ埋めていくだけ

用意するのは、それだけです。あとは埋めていきます。

1行実行したら、1行足す

埋め方も1つだけです。

やること

プログラムを1行実行するたびに、表を1行足す。足したその行に、実行し終わったあとの値を書く。

1行実行したら、1行足す

足したその行に、実行し終わったあとの値を書く

1行目 整数型: a ← 3 を実行した

実行した行 a b goukei
1行目 3 ー ー

a に 3 が入った。b と goukei はまだ未定義

2行目 整数型: b ← 5 まで実行した

実行した行 a b goukei
1行目 3 ー ー
2行目 3 5 ー

前の行は消さない。下に足す

4行目まで実行した

実行した行 a b goukei
1行目 3 ー ー
2行目 3 5 ー
3行目 3 5 8
4行目 3 5 16

色が付いているのが、その行で変わった値

上から下へ書き足すだけ。前の行は消さない

ここで大事なのは、前の行を消さないことです。上から下へ書き足していくだけ。

消さないから、あとで「この値はどこで変わったのか」をさかのぼれます。答えが合わなかったときに、間違えた行がすぐ見つかります。

よくある失敗

1つのマスを書き換えて使ってしまうこと。それだと途中の値が残らず、紙の上で暗算しているのと同じになります。表にした意味がありません。

書くのは、値が変わったマスだけ

ここまでの書き方には、まだ無駄があります。変わっていない値まで、毎行そのまま書き写していることです。

実際に手を動かすと、これがいちばん時間を食います。そして同じ数字が縦に並ぶので、どこが変わったのか目で追えません。

書くのは、値が変わったマスだけ

同じ数字が縦に並ぶと、どこが変わったのか目で追えない

全部のマスを埋めた表

実行した行 a b goukei
1行目 3 ー ー
2行目 3 5 ー
3行目 3 5 8
4行目 3 5 16

薄い数字が、前の行から変わっていないのに書き写したぶん

変わったマスだけ書いた表

実行した行 a b goukei
1行目 3
2行目 5
3行目 8
4行目 16

空いたマスは「上と同じ」という意味

書かれている数字=その行で変わったもの

空けておいてよい

前の行と同じ値のマスは、空けておきます。空いたマスは「上と同じ」という意味です。

こうすると、書かれている数字=その行で変わったものになります。値の動きが縦に読めるようになるのが、いちばんの効きめです。

実際に、1行ずつ動かしてみる

下のプログラムを、ボタンで1行ずつ進めてください。トレース表が1行ずつ積み上がっていくのが見えます。

自分で書くときも、これとまったく同じものを書きます。

代入だけのプログラムを追う

当サイトオリジナルの例題


ループ開始前

いま計算していること

まだ計算していません

変数の状態

トレース表(進めると1行ずつ積み上がります)

代入は、右を先に計算する

x ← x + y のような行は、右側を先に計算してから、左の箱に書き込みます。そのときの x と y の値を、1つ上の行から読んでください(G2-3)。

右側に出てきた変数は読まれただけなので、値は変わりません。

つまずきポイントまとめ

まちがえ方 正しい書き方
頭の中だけで追う 覚えていられる量の問題。書き出せば読む力だけの勝負になる
1つのマスを書き換えて使う 1行実行したら1行足す。前の行は消さない
実行する前の値を書く 書くのは実行し終わったあとの値
全部のマスを毎行埋める 値が変わったマスだけ書く。空いたマスは「上と同じ」
右側の変数も変わったと思う ← の右は読まれるだけ。変わるのは左の箱

次に読む

A1-2 繰返しのトレース ─ 1周を1行に書く
G2-3 代入「←」 ─ 右を先に計算して、左へ入れる
G1 擬似言語とは ─ 記号の読み方と書き方を1枚で
目次 基本情報技術者試験 科目B 攻略ガイド

この記事で引用した資料

いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。

この記事のプログラムと表は、すべて当サイトが説明のために作ったものです。IPAの出題そのものは扱っていません(実際の出題の解説は公開問題の解説にあります)。

Copied title and URL