共通テスト情報Ⅰのプログラミング|言語名より擬似コードの状態を追う

共通テスト情報Ⅰのプログラミングでは、一般的なトレース方法を知っているだけでなく、設問が何を求めているかを先に特定し、擬似コード・表・グラフ・選択肢を往復して必要な部分だけ検証することが重要です。基本のトレース手順そのものは「情報 プログラミング 解き方」で扱い、このページでは共通テスト型の読み方と選択肢の絞り方に集中します。

最初にコードではなく設問を読む

長いコードが出ても、最初から全行を追う必要があるとは限りません。

まず問われているのが、

  • 最終的な値
  • 条件を満たす個数
  • 配列の位置
  • 空欄に入る処理
  • 誤りのある行
    のどれかを確認します。

何を答えるかを決めてから、必要な変数だけ追うと、不要な計算を減らせます。

擬似コードの記法は問題文を正本にする

普段PythonやJavaScriptを使っていても、共通テスト型の擬似コードは、その問題で示されたルールに従います。

配列の先頭番号、代入記号、繰り返し範囲、論理演算子などを最初に確認します。

「自分の言語では0番からだから」と勝手に補わないことが重要です。

空欄補充は「直前と直後」で考える

空欄に入る一行を選ぶときは、候補の文法だけを見ません。

たとえば「ここまで見たデータの最大値を保存する」処理なら、空欄の前にどの値が入っていて、処理後に何を保存していたいかを考えます。

空欄の前の状態→必要な処理→空欄の後に保ちたい状態の順に見ると、似た選択肢を区別しやすくなります。

ミニ問題:選択肢をコードと照合する

次の処理を考えます。

data = [4, 7, 2, 9]
sum ← 0
for each x in data
    if x >= 5
        sum ← sum + x
    end
end

最終的なsumとして正しいものを選びます。

A. 11
B. 16
C. 18
D. 22

5以上なのは7と9なので、

7+9=16

です。答えはBです。

ここで全変数の表を作る必要はありません。設問が最終sumだけを聞いているので、条件を満たす要素とsumの更新だけ確認すれば足ります。

値と「位置」を取り違えない

配列 [8,3,5,9] で最大値を探す問題でも、問われているのが最大値9なのか、9が入る位置なのかで答えは変わります。

選択肢を見る前に、設問中の「値」「添字」「個数」「位置」などの語へ印を付けます。

コードが正しく追えても、答える対象を取り違えると不正解です。

表やグラフとコードを同じデータとして読む

共通テストでは、コードだけでなく表・グラフ・問題場面が同時に出ることがあります。

表の一行が配列のどの要素に対応するか、グラフの一点がどの変数で作られるかを確認します。

コードの出力を表へ戻し、表の一部をコードへ戻すと、選択肢の整合性を検証できます。

選択肢は「あり得る範囲」で先に削れることがある

たとえば正のデータだけを足している合計なら、途中で合計が理由なく小さくなる選択肢は疑えます。

個数を数える変数なら、データ件数より大きな値は通常あり得ません。

もちろん範囲だけで最終決定はしませんが、符号・最大最小・単調な増減を使って明らかに合わない選択肢を先に外せる場合があります。

二重ループは「問われた一周」から見る

二重ループが出ても、全組合せを最初から表にするとは限りません。

「i=2のときの出力」を聞かれているなら、その外側ループの一周だけ詳しく追い、必要なら前の状態を補います。

実行回数を問うなら、外側と内側の回数を分けて数えます。設問に合わせて追跡範囲を変えます。

バグ訂正は「期待する結果」から逆算する

「最大値を求めたいのに最後の要素が出る」なら、最大値変数を条件なしで毎回上書きしていないか確認します。

「条件を満たした個数を数えたいのに合計値が出る」なら、更新式が count+1 ではなく値そのものを足していないかを見ます。

本来ほしい出力→必要な状態→その状態を壊す行の順に探すと、誤り訂正問題を読みやすくなります。

本番の時間短縮は「全部書かない」ことではない

何も書かず頭の中だけで追うと、更新前後を混ぜることがあります。

一方、全変数を毎回表にすると時間を使います。

そこで、設問に関係する変数だけを小さく記録します。基本のトレース表を使えることを前提に、必要な列だけ残すのが本番向けの短縮です。

条件を一つ変えて選択肢を検証する

先ほどのデータ [4,7,2,9] で、条件を x >= 5 から x % 2 = 1 に変えるとします。

奇数は7と9なので、今回のデータでは合計は同じ16です。

しかし、結果が同じだから二つの条件が同じ意味というわけではありません。データに5や6が入れば結果は変わります。

選択肢の処理が本当に同値か確かめるとき、結果が分かれそうな入力を自分で一つ作ると違いを発見できます。

共通テスト型では最後に一文で処理の目的を言う

コードを追ったら、

  • 5以上の値だけを合計する
  • 最大値の位置を探す
  • 条件を満たす行だけ数える
    のように一文へ圧縮します。

その一文が設問の説明や表と一致しているか確認します。

次は「設問→必要な情報→検証」の三段で解く

初見問題では、

  1. 設問が求めるものを固定する
  2. その答えに必要な変数・表・コード箇所だけ拾う
  3. 選択肢を範囲・条件・実際の計算で検証する
    の順に進めます。

コード全体を理解してから答えるのではなく、問いに必要な部分を正確に検証することが、共通テスト型での実戦的な読み方です。

参考資料

  • 文部科学省「高等学校学習指導要領 情報編」
おすすめの記事