科目Bで必要変数だけ追う方法の試験問題への適用

長い科目Bコードでは、設問に必要な変数だけを抜き出した小さなトレース表を作る。途中で依存関係が増えたら列を追加する。

この単元で学ぶこと

  • 逆向き読解の意味と役割を説明できる
  • 列追加の意味と役割を説明できる
  • 副作用確認の意味と役割を説明できる
  • 長い疑似言語から必要状態を抽出し、小さなトレース表で正答まで到達できる

本文解説

目的値を問う式、そこへ入力する配列要素、その添字、分岐・ループ条件に必要な変数までを追う。副作用を持つ関数があれば影響先も追加する。

逆向き読解 答えの変数から代入元を逆方向にたどる。 コード全体を均等に読むより焦点が定まる。

列追加 途中で必要性が判明した変数をトレース表へ追加する。 最初から完璧に決める必要はない。

副作用確認 関数が引数以外の状態を変更するか確認する。 グローバル変数や配列更新があれば追跡対象。

条件依存 目的値に直接代入されなくても実行経路を決める条件変数を追う。 どの代入が実行されるかに影響。

検算列 反復回数や出力件数など簡単に確認できる補助値。 必要に応じて追加する。

目的値→代入元→添字/条件→関数副作用の順に依存を広げる。

平均avg=sum/countを問うならavg,sum,count、sum更新でa[i]を使うならi,a[i]も追加する。

図解

長文疑似言語の依存追跡
目的値から逆向きに依存を広げ、必要列だけのトレース表を作る。

重要ポイント

  • 逆向き読解: 答えの変数から代入元を逆方向にたどる。
  • 列追加: 途中で必要性が判明した変数をトレース表へ追加する。
  • 副作用確認: 関数が引数以外の状態を変更するか確認する。
  • 条件依存: 目的値に直接代入されなくても実行経路を決める条件変数を追う。
  • 列を減らすこと自体が目的ではなく、答えに必要な情報を過不足なく残す。

間違えやすい点

  • 副作用関数の変更先を見落とさない。
  • 条件変数を直接答えに出ないからと削除しない。
  • 必要になった列を途中追加することをためらわない。

用語解説

逆向き読解
答えの変数から代入元を逆方向にたどる。
列追加
途中で必要性が判明した変数をトレース表へ追加する。
副作用確認
関数が引数以外の状態を変更するか確認する。
条件依存
目的値に直接代入されなくても実行経路を決める条件変数を追う。
検算列
反復回数や出力件数など簡単に確認できる補助値。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。