動かしてわかるフローチャート|変数の値を追うトレース表の書き方と練習問題

最終更新日

変数を初期化して加算するフローチャートと、i・sumの変化を記録するトレース表

フローチャートの矢印は追えるのに、「最後の変数の値はいくつ?」と聞かれると分からなくなる。そんなときに役立つのが、実行した順に値を書き出すトレース表です。頭の中だけで計算せず、「どの処理で、どの値が変わったか」を残していきます。

この記事では、数を順番に合計するフローチャートを動かしながら、カウンター i と合計 sum の変化を確認します。プログラミング言語の文法を覚えていなくても取り組めます。まずは小さな数で予想し、実行結果と比べてみてください。

トレース表とは?実行順に変数の値を記録する表

トレースとは、処理の順番をたどり、変数の値や条件判定の結果を確かめることです。たとえば経費の金額を1件ずつ合計するとき、「今見ている明細」と「ここまでの合計」は別々の情報です。繰り返しでも、今扱う数と、それまでに積み上げた結果を分けて追う必要があります。

今回の表は、図の記号を1つ実行するごとに1行追加し、その処理が終わった直後の値を記録します。トレース表には、値が変わったときだけ記入する形式や、ループ1周につき1行にまとめる形式もあります。練習問題では、どの時点の値を記録する表なのかを最初に確認しましょう。

  • i:今回、合計に加える数。繰り返しを進めるカウンターとしても使います。
  • sum:これまでに加えた数の合計。最初は0です。
  • 判定:条件式が真か偽か。判定するだけでは、iやsumは変わりません。

図を動かして、現在の値とトレース表を見比べる

初期条件は「iを1から始め、3以下の間、sumにiを加えてからiを1増やす」です。終了時のi・sum・加算回数を予想してから実行してみましょう。緑色の記号と表の最終行は、直前に実行した箇所を表します。条件を変更すると、実行状態と予想の入力はリセットされます。

図の は代入を表します。sum ← sum + i は「今のsumとiを足した結果で、sumを書き換える」という意味です。開始・終了は端子、処理は長方形、条件判定はひし形で表しています。

現在の i
合計 sum
加算回数0

開始前です。

はいいいえ戻る 開始 i ← 1, sum ← 0 i ≤ 3? sum ← sum + i i ← i + 1 終了

トレース表

実行した箇所isum判定

予想して確認

現在の条件の解答・解説

1から3まで足す例を、最後の判定まで追う

初期化するとiは1、sumは0です。i ≤ 3 が真なので、1を加えてsumを1にします。この時点のiはまだ1です。その後、別の処理でiを2に更新し、条件判定へ戻ります。

実行した箇所 i sum 判定
初期化 1 0
i ≤ 3を判定 1 0
sumにiを加算 1 1
iを1増やす 2 1
i ≤ 3を判定 2 1
sumにiを加算 2 3
iを1増やす 3 3
i ≤ 3を判定 3 3
sumにiを加算 3 6
iを1増やす 4 6
i ≤ 3を判定 4 6
終了 4 6

終了時のiは3ではなく4です。3を加算したあとにも更新処理を通り、4になってから条件を判定するためです。ただし、4は条件を満たさないので合計には入りません。「最後に加えた数」と「終了時のカウンター」は区別しましょう。

間違えやすい4つのポイント

1. 初期値を途中で消さない

初期化の長方形は、戻り矢印の合流点より前にあります。したがって、sumを0にするのは最初の1回だけです。各周でsumを0に戻してしまうと、それまでの合計が失われます。値が不自然になったら、戻り先が初期化なのか条件判定なのかを確認してください。

2. 代入は右辺を計算してから左辺を書き換える

iが2、sumが1なら、sum ← sum + i の計算は1 + 2です。結果の3をsumへ入れます。iも同時に3になるわけではありません。変更していない変数は、前の行と同じ値を引き継ぎます。

3. 「未満」と「以下」は境界の値が違う

開始値1・終了値3・増分1の場合、i < 3 では1と2を加算し、i ≤ 3 では3も加算します。ただし「以下にすれば必ず1回増える」とは限りません。開始値1・増分2・終了値4なら、iは1、3、5と進み、4を通らないため、どちらの条件でも加算する数は1と3です。

4. 条件判定の回数と処理回数は違う

この前判定ループでは、加算する前に毎回条件を調べ、最後にもう1回、偽になる判定を行います。加算が3回なら判定は4回です。開始時点で条件が偽の場合も、判定は1回ありますが、加算は0回です。教材の「加算回数」は、ひし形を通った回数ではありません。

トレース表の練習問題5問|予想してから答えを見る

すべてsumの初期値は0です。上の教材の「練習問題」で同じ条件を選べます。終了時のi・sum・加算回数の3つを考えてください。

問題1:1から3まで、1ずつ増やす

開始値1、条件i ≤ 3、増分1です。

解答・解説

iは4、sumは6、加算は3回です。1 + 2 + 3 = 6。iを4に更新したあと、条件が偽になって終了します。

問題2:「3以下」を「3未満」に変更

開始値1、条件i < 3、増分1です。

解答・解説

iは3、sumは3、加算は2回です。1と2は加算しますが、3 < 3は偽なので3は加えません。

問題3:1から5まで、2ずつ増やす

開始値1、条件i ≤ 5、増分2です。

解答・解説

iは7、sumは9、加算は3回です。加算する値は1、3、5。5の次は6ではなく7です。終了値までのすべての整数を加えるわけではありません。

問題4:開始値が終了値より大きい

開始値4、条件i ≤ 3、増分1です。

解答・解説

iは4、sumは0、加算は0回です。初期化のあと最初の判定で偽になります。iの更新処理も通らないため、iは5にはなりません。

問題5:0から始めて3未満まで

開始値0、条件i < 3、増分1です。

解答・解説

iは3、sumは3、加算は3回です。0 + 1 + 2 = 3。0を加えてもsumの値は変わりませんが、加算処理は1回実行されています。問題2と合計は同じでも、処理回数は異なります。

仕事や学習でトレースが役立つ場面

集計結果が想定より1件多い、最初のデータだけ飛ばしている、合計が最後の値と同じになる。こうした不具合は、途中の値を書き出すと原因を絞りやすくなります。最初から大量のデータで試さず、1〜3件の小さな例と、条件の境界に当たる値から確認するのが実践的です。

生成AIに処理を作ってもらった場合も、最終結果だけで正しさを判断せず、どの値を何回処理したかを追ってみてください。トレース表は、処理を説明する資料にも、期待する結果と実際の結果を照合する手がかりにもなります。

まとめ|変わった値と、変わらない値を分けて追う

トレース表を書くときは、初期値を記録し、矢印の順番どおりに1つずつ処理します。条件判定だけでは値は変わりません。代入や更新のときに対象の変数を書き換え、最後に条件が偽になるところまで追いましょう。合計が合っていても、回数や終了時のiが違えば、処理の理解にずれがある可能性があります。

次に取り組みたいフローチャートの記事

シェアする