今回はアルゴリズムのトレース手順について紹介します。
トレース(trace)は足跡を意味する言葉です。コンピュータ用語だけでもいろいろな意味がありますが、本記事では「プログラムの処理を机上で追う」という意味で使用します。
本記事で紹介するトレース方法は以下の2つです。
・アルゴリズムをプログラムに起こしてトレースする方法
・机上でのアルゴリズムトレース方法
アルゴリズムのトレースを練習する場合、まずは実際に動かしてみるのがおすすめです。
机上でやる場合も実際にプログラムを書いて答え合わせをしましょう。
目次
アルゴリズムをプログラムに起こしてトレースする方法
初心者が最初から机上でプログラムを追うのは非常にハードルが高いです。
私が最初にアルゴリズムを学ぼうとした時にいきなり机上から追おうとしたが全然ダメでした。動くイメージがないとなぜこれで動くのかっていうのがしっくり来ないんですよね。
なのでまずは、プログラムに起こしてトレースしてみましょう。
実際にプログラムを書いてアルゴリズムをトレースする手順は以下の通りです。
1.実際にプログラムを書く
2.ソースコードを印刷する
3.1行ずつ値の変化をチェック
1.実際にプログラムを書く
まずは実際にプログラムを書いてみましょう。
言語は何でもOKです。(アルゴリズムを再現できるものを選ぶ必要はありますが)
どの言語がいいかわからない場合は比較的簡単に始められるPythonがおすすめ。
Pythonの始め方は「Pythonプログラミングの始め方まとめ」をお読みください。
最初から難しいアルゴリズムをやろうとしても動かない可能性があります。
まずは簡単なアルゴリズムから始めましょう。
2.ソースコードを印刷する
次にソースコードを印刷します。
文字のサイズは見やすいものでOKですが、ページをめくるのは手間なのでできるだけ1ページに収めた方がよいです。
コードが長い場合は1枚に2ページを印刷する方法もあります。ただし、文字を書き込むので余白や行間は広い方がよいです。
3.1行ずつ値の変化をチェック
print文やステップ実行などを駆使して1行ずつ値の変化を見ていきましょう。
値をチェックする場合のポイントは以下の通り。
・変数がどのような値に変化するか?
・関数を呼ぶ時に引数にはどんな値が渡されているか?
上記ポイントをチェックしたら紙に値を書き込んでいきましょう。
1回だけではなく値を変えて何回も追うとより理解が進みます。
ループ文の場合は値の変化もチェックしましょう。
全ループ見る必要はありません。
境界を意識(ループの始めや終わり)をチェックするのがおすすめです。
判定文の場合は真偽両方の値の変化をチェックします。
その他気づいた点やいまいち動作が理解できなかった点があればメモしておき、後でネットや参考書で調べて復習しましょう。
より具体的な方法については「アルゴリズムをPythonで勉強しよう〜実践編〜」をお読みください。
情報処理試験のアルゴリズムも実際に書くのがおすすめ
情報処理試験の過去問を解く場合も、アルゴリズムを実際にプログラムに書いて動かしてみるのがおすすめです。
過去問の解説を読むだけだと、モヤモヤが抜けない場合も多いですが、実際に動かしてみることで、「なぜこの選択肢が正しく動くのか」ということが理解しやすくなります。
また、正解の選択肢だけでなく間違いの選択肢も入れて動かしてみましょう。
「なぜダメなのか?」ということが理解できます。
机上でのアルゴリズムトレース方法
プログラムを動かすトレースに慣れてきたら机上で追う練習をしましょう。
こちらも最初は条件分岐などのない簡単なアルゴリズムから始めるのがおすすめです。
机上でアルゴリズムをトレースする手順は以下の通り。
1.アルゴリズムを紙に印刷する
2.1行ずつ値の変化を書き込む
3.実際にプログラムを書いて答え合わせ
1.アルゴリズムを紙に印刷する
まずは紙にソースコードを印刷しましょう。文字は見やすいサイズで印刷すればOKです。プログラムでトレースする場合と同様できるだけ1ページに収めた方が作業がしやすくなります。
コメントやメモが書きやすいように行間や余白は多めにしておきましょう。
1行ずつ値の変化を書き込む
変数に適当な値を設定して1行ずつ処理を読んで値の変化を見ていきます。
各ステップを実行した結果変数がどのように変化するか考えて紙に書き込んでいきましょう。
1回で終わらせずに値を変えて何回かトレースすることが大事です。
3.実際にプログラムを書いて答え合わせ
机上でトレースしただけではあまり意味がありません。
必ず実際にプログラムを書いて答え合わせをしましょう。
ミスが見つかった場合は以下の2点を明確にして紙に書き込みます。
・どこで間違えたのか
・何を間違えたのか
その他気づいた点があればそれもメモです。
間違えた点については参考書を読み返して復習しておきましょう。
終わりに
最初から机上でトレースを行おうと思うと手が止まりやすいです。
なのでまずは実際にプログラムを動かしながら処理を追う練習しましょう。
情報処理の試験を解くときも実際にプログラムを書いて動かしてみると良いですよ。
なぜこの選択肢が正解で他の選択肢が間違いなのかということが理解しやすいです。
机上で追う場合も実際にプログラムに起こして答え合わせをするとより理解が進みます。
紙でトレースしただけのやりっぱなしで終わらないことが大切です。
おすすめ記事Python入門者のための100日勉強方法
Pythonまとめ>>Pythonプログラミングの始め方まとめ