🔍 人間がコンピュータになる訓練
🎯 トレース表の作り方と書き進め方のルールを覚え、自分で表を用意できるようになる
ここからが、このポータルでいちばん力を入れている訓練です。やることは一つ。あなたがコンピュータになることです。
人はプログラムを読むとき、無意識に「こう動くはずだ」と期待を混ぜてしまいます。ところが機械は、書いてあることしかしません。この差がバグの正体です。だから、期待をはさむ余地のない読み方を身につけます。それがトレース表です。
トレース表とは
プログラムを1行実行するごとに、そのときの変数の値を紙に書き出した表のことです。実行の様子を、目に見える形で残します。
行 | a | b | 出力
---+---+---+-----
4 | 3 | ー |
5 | 3 | 4 |
6 | 7 | 4 |左端が実行した行番号、真ん中が各変数の値、右が画面に出たものです。「まだ作られていない変数」はー(横線)と書いておくと、いつ生まれたかが分かります。
列は自分で決める
表を書き始める前に列を決めます。決め方は簡単で、そのプログラムに出てくる変数を全部並べるだけです。あとは左端に行番号、右端に出力の列を足します。変数が3つなら5列の表になります。条件分岐があるときは「条件の判定結果」の列を、繰り返しがあるときは「何周目か」の列を足すと、さらに見通しが良くなります。列を決めた時点で、そのプログラムが何を覚えながら動くのかが見えてきます。
書き方のルール4つ
特に2番が大事です。面倒でも全部書き写してください。空欄があると、そこで頭が推測を始めます。推測こそが、いま追い出したいものです。
なぜこれが効くのか
理由は3つあります。
この先の使い方
道場の「トレース問題」は、この表の空欄を埋める形式です。つまりこのトラックの訓練が、そのまま出題形式になっています。また、この表と同じものを画面上で1ステップずつ動かせるのが、このポータルのメモリビジュアライザです。次のトピックから実際に使ってみましょう。
最初は「こんな面倒なことを毎回やるのか」と思うはずです。答えは「いいえ」です。慣れると頭の中に表ができるので、紙が要るのは難所だけになります。ただし、その頭の中の表は、紙で百回書いた人にしか作れません。
プログラムを1行ずつ実行したときの、各変数の値の変化を表にまとめたもの。頭の中でコンピュータになりきって処理を追いかける道具にあたる。変数の値がどう変わっていくかを紙の上で追うことで、頭の中の実行イメージがはっきりする。
値を入れておくための名前付きの箱のこと。名前をつけることで中身を自由に出し入れできる、プログラムの記憶場所にあたる。変数名は自由に付けられるが、意味の分かる名前にすると読みやすいコードになる。
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。