科目Bで必要変数だけ追う方法の試験問題への適用
長い科目Bコードでは、設問に必要な変数だけを抜き出した小さなトレース表を作る。途中で依存関係が増えたら列を追加する。
この単元で学ぶこと
- 逆向き読解の意味と役割を説明できる
- 列追加の意味と役割を説明できる
- 副作用確認の意味と役割を説明できる
- 長い疑似言語から必要状態を抽出し、小さなトレース表で正答まで到達できる
本文解説
目的値を問う式、そこへ入力する配列要素、その添字、分岐・ループ条件に必要な変数までを追う。副作用を持つ関数があれば影響先も追加する。
逆向き読解 答えの変数から代入元を逆方向にたどる。 コード全体を均等に読むより焦点が定まる。
列追加 途中で必要性が判明した変数をトレース表へ追加する。 最初から完璧に決める必要はない。
副作用確認 関数が引数以外の状態を変更するか確認する。 グローバル変数や配列更新があれば追跡対象。
条件依存 目的値に直接代入されなくても実行経路を決める条件変数を追う。 どの代入が実行されるかに影響。
検算列 反復回数や出力件数など簡単に確認できる補助値。 必要に応じて追加する。
目的値→代入元→添字/条件→関数副作用の順に依存を広げる。
平均avg=sum/countを問うならavg,sum,count、sum更新でa[i]を使うならi,a[i]も追加する。
図解
重要ポイント
- 逆向き読解: 答えの変数から代入元を逆方向にたどる。
- 列追加: 途中で必要性が判明した変数をトレース表へ追加する。
- 副作用確認: 関数が引数以外の状態を変更するか確認する。
- 条件依存: 目的値に直接代入されなくても実行経路を決める条件変数を追う。
- 列を減らすこと自体が目的ではなく、答えに必要な情報を過不足なく残す。
間違えやすい点
- 副作用関数の変更先を見落とさない。
- 条件変数を直接答えに出ないからと削除しない。
- 必要になった列を途中追加することをためらわない。
用語解説
- 逆向き読解
- 答えの変数から代入元を逆方向にたどる。
- 列追加
- 途中で必要性が判明した変数をトレース表へ追加する。
- 副作用確認
- 関数が引数以外の状態を変更するか確認する。
- 条件依存
- 目的値に直接代入されなくても実行経路を決める条件変数を追う。
- 検算列
- 反復回数や出力件数など簡単に確認できる補助値。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。