C言語学習ポータル(無料版) 学習コンテンツ 人間がコンピュータになる訓練 トレース表とは——実行を目で見る道具

🔍 人間がコンピュータになる訓練

トレース表とは——実行を目で見る道具

無料公開版に収録・読む目安 12分

🎯 トレース表の作り方と書き進め方のルールを覚え、自分で表を用意できるようになる

ここからが、このポータルでいちばん力を入れている訓練です。やることは一つ。あなたがコンピュータになることです。

人はプログラムを読むとき、無意識に「こう動くはずだ」と期待を混ぜてしまいます。ところが機械は、書いてあることしかしません。この差がバグの正体です。だから、期待をはさむ余地のない読み方を身につけます。それがトレース表です。

トレース表とは

プログラムを1行実行するごとに、そのときの変数の値を紙に書き出した表のことです。実行の様子を、目に見える形で残します。

行 | a | b | 出力
---+---+---+-----
 4 | 3 | ー |
 5 | 3 | 4 |
 6 | 7 | 4 |

左端が実行した行番号、真ん中が各変数の値、右が画面に出たものです。「まだ作られていない変数」はー(横線)と書いておくと、いつ生まれたかが分かります。

列は自分で決める

表を書き始める前に列を決めます。決め方は簡単で、そのプログラムに出てくる変数を全部並べるだけです。あとは左端に行番号、右端に出力の列を足します。変数が3つなら5列の表になります。条件分岐があるときは「条件の判定結果」の列を、繰り返しがあるときは「何周目か」の列を足すと、さらに見通しが良くなります。列を決めた時点で、そのプログラムが何を覚えながら動くのかが見えてきます。

書き方のルール4つ

  1. 1行実行したら、表を1行増やす(まとめて書かない)
  2. 値が変わらない変数も、そのまま書き写す(空欄にしない)
  3. 通らなかった行は書かない(分岐で選ばれなかった側は存在しないのと同じ)
  4. 出力は出た瞬間に書く(あとでまとめて書かない)

特に2番が大事です。面倒でも全部書き写してください。空欄があると、そこで頭が推測を始めます。推測こそが、いま追い出したいものです。

師範わしが見てきた限り、伸びる者は必ず手を動かす。頭の中で追える気になった者が、いちばん間違えるのじゃ。

なぜこれが効くのか

理由は3つあります。

この先の使い方

道場の「トレース問題」は、この表の空欄を埋める形式です。つまりこのトラックの訓練が、そのまま出題形式になっています。また、この表と同じものを画面上で1ステップずつ動かせるのが、このポータルのメモリビジュアライザです。次のトピックから実際に使ってみましょう。

最初は「こんな面倒なことを毎回やるのか」と思うはずです。答えは「いいえ」です。慣れると頭の中に表ができるので、紙が要るのは難所だけになります。ただし、その頭の中の表は、紙で百回書いた人にしか作れません。

要点まとめ

アプリで演習問題まで解く(無料・登録不要)

この項目に出てくる用語

トレース表とれーすひょう

プログラムを1行ずつ実行したときの、各変数の値の変化を表にまとめたもの。頭の中でコンピュータになりきって処理を追いかける道具にあたる。変数の値がどう変わっていくかを紙の上で追うことで、頭の中の実行イメージがはっきりする。

変数へんすう

値を入れておくための名前付きの箱のこと。名前をつけることで中身を自由に出し入れできる、プログラムの記憶場所にあたる。変数名は自由に付けられるが、意味の分かる名前にすると読みやすいコードになる。

同じトラックのほかの項目

代入をトレースする代入が「右辺を計算して左辺に上書きする」動作だと理解し、値の推移を正確に追える 分岐をトレースする条件の真偽を判定し、通った道だけをトレース表に残せるようになる ループをトレースする繰り返しの1周ごとに条件判定・本体・更新を追い、ループ終了後の値まで正しく求められる バグを見つける思考法——仮説と検証バグの原因を絞り込む手順(再現→範囲を狭める→仮説→1つずつ検証)を身につける ラバーダック・デバッグコードを声に出して説明することで、自分の理解の穴を見つけられるようになる エラーメッセージは敵ではないエラーメッセージの構造を知り、英語のまま読んで対処できるようになる 総仕上げ——紙上プログラム実行代入・分岐・繰り返しが混ざったプログラムを、最後まで自力でトレースできる
代入をトレースする ›

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版 / BOOTH