情報Ⅰの擬似コード問題の解き方【共通テスト形式のトレース練習】

共通テスト情報Ⅰの擬似コード問題をトレースで解く方法を初心者向けに解説。変数表の書き方、パターン別解法、練習問題5問付きで得点力アップ。

2026年5月11日

共通テスト「情報Ⅰ」の擬似コード問題を攻略しよう

共通テスト「情報Ⅰ」では、擬似コードを読んで答える問題が出ます。配点も高く、ここで差がつきます。

「コードを見ても何をしているかわからない」「途中で変数の値を見失う」という人は多いです。でも、正しい解き方を知れば確実に得点できます。

擬似コード問題を解くカギはトレースです。トレースとは、コードを1行ずつ手動で実行し、変数の値を追いかけることです。

この記事では、トレースの具体的なやり方を解説し、パターン別の解法と練習問題5問を用意しました。

DNCLの基本文法を先に読んでおくと、よりスムーズに理解できます。

擬似コードの読み方の基本

擬似コードとは、プログラムの処理手順を日本語ベースで書いたものです。共通テストではDNCLという擬似言語が使われます。

1. 変数と代入

変数は値を入れる箱です。矢印の右側を計算して、左側の変数に入れます。

x ← 5
y ← x + 3

2. 条件分岐(もし〜なら)

条件が正しい(真)なら上の処理、正しくない(偽)なら下の処理を実行します。

もし x > 10 ならば
  y ← y + 1
そうでなければ
  y ← y - 1
を実行する

3. 繰り返し

iが1, 2, 3, 4, 5と変わりながら、中の処理を5回繰り返します。

i を 1 から 5 まで 1 ずつ増やしながら繰り返す
  合計 ← 合計 + i
を実行する

4. 配列

配列は複数の値をまとめて入れる箱です。A[2]は配列Aの2番目の要素を取り出します。

配列 A ← {3, 7, 2, 9, 1}
x ← A[2]

注意:共通テストでは配列の添字が0から始まる場合と1から始まる場合があります。問題文をよく確認しましょう。

変数と条件分岐の詳しい解説も参考にしてください。

トレースの方法

トレースとは、プログラムを1行ずつ自分の手で実行し、変数の値の変化を追いかけることです。

変数表の書き方

例題:次のコードを実行したとき、xの最終的な値を求めなさい。

x ← 0
i を 1 から 3 まで 1 ずつ増やしながら繰り返す
  x ← x + i * 2
を実行する

変数表:

ix計算内容
初期-0x←0
1回目120 + 1×2 = 2
2回目262 + 2×2 = 6
3回目3126 + 3×2 = 12

答え:x = 12

トレースの手順

  1. すべての変数を書き出す
  2. 初期値を記入する
  3. コードを上から1行ずつ実行する
  4. 変数の値が変わるたびに表を更新する
  5. 繰り返しは1回ずつ丁寧に追う

コツ:頭の中でやらず、必ず紙に書きましょう。暗算でミスする人がとても多いです。

パターン別解法

共通テストの擬似コード問題には、よく出るパターンがあります。パターンを知っておくと、コードの目的がすぐにわかります。

パターン1: カウント(数える)

count ← 0
i を 1 から n まで 1 ずつ増やしながら繰り返す
  もし A[i] > 50 ならば
    count ← count + 1
  を実行する
を実行する

見分け方:count ← count + 1 があれば「何かを数えている」パターンです。

この例の意味:配列Aの中で50より大きい要素の個数を数えている。テストの点数で「合格者数を数える」「基準値を超えたデータの件数」などの場面で使われます。

パターン2: 合計(足し合わせる)

goukei ← 0
i を 1 から n まで 1 ずつ増やしながら繰り返す
  goukei ← goukei + A[i]
を実行する

見分け方:goukei ← goukei + 何か があれば「合計を求めている」パターンです。

この例の意味:配列Aの全要素の合計を求めている。平均を出すときは、このあとに goukei / n が続きます。「テスト5教科の合計点」「売上の合計」などの場面で登場します。

パターン3: 最大値探索

saidai ← A[1]
i を 2 から n まで 1 ずつ増やしながら繰り返す
  もし A[i] > saidai ならば
    saidai ← A[i]
  を実行する
を実行する

見分け方:「もし A[i] > 変数 ならば、変数 ← A[i]」の形があれば最大値探索です。不等号が < なら最小値探索になります。

この例の意味:配列Aの中で最も大きい値を見つけている。最初の要素を仮の最大値として、それより大きい値が見つかるたびに更新していきます。

パターン4: 交換(スワップ)

temp ← A[i]
A[i] ← A[j]
A[j] ← temp

見分け方:一時変数(temp)を使って2つの値を入れ替えている。ソートアルゴリズムの中でよく使われます。

この例の意味:A[i]とA[j]の値を交換しています。直接 A[i] ← A[j] とすると元のA[i]の値が消えてしまうため、一時変数tempに退避させてから入れ替えます。バブルソートや選択ソートの中核部分です。

ソートアルゴリズムの解説で、交換を使った並べ替えの仕組みを学べます。

パターン5: フラグ(判定)

flag ← 0
i を 1 から n まで 1 ずつ増やしながら繰り返す
  もし A[i] = target ならば
    flag ← 1
  を実行する
を実行する

見分け方:変数が0か1だけを取り、条件を満たしたら1に変わる。「配列の中にtargetがあるか」を判定しています。

この例の意味:配列Aの中にtargetと同じ値が1つでもあればflagが1になります。全部調べ終わったあとにflagが0なら「見つからなかった」、1なら「見つかった」と判定できます。線形探索(リニアサーチ)の基本形です。

共通テスト形式の練習問題

練習問題1: 基本トレース

次のコードを実行したとき、変数kekkaの値を求めなさい。

kekka ← 1
i を 1 から 4 まで 1 ずつ増やしながら繰り返す
  kekka ← kekka * i
を実行する

練習問題2: 条件分岐つきカウント

配列 A = { 4, 8, 3, 9, 6, 2, 7 } のとき、countの値を求めなさい。(添字は1から)

count ← 0
i を 1 から 7 まで 1 ずつ増やしながら繰り返す
  もし A[i] >= 5 ならば
    count ← count + 1
  を実行する
を実行する

練習問題3: 最大値探索

配列 B = { 12, 5, 23, 8, 17 } のとき、saidaiichiの値を求めなさい。(添字は1から)

saidai ← B[1]
ichi ← 1
i を 2 から 5 まで 1 ずつ増やしながら繰り返す
  もし B[i] > saidai ならば
    saidai ← B[i]
    ichi ← i
  を実行する
を実行する

練習問題4: 穴埋め問題

配列 C = { 10, 20, 30, 40, 50 } の合計と平均を求めるプログラムです。空欄【ア】【イ】に入る式を答えなさい。

goukei ← 0
i を 1 から 5 まで 1 ずつ増やしながら繰り返す
  goukei ← 【ア】
を実行する
heikin ← 【イ】

練習問題5: 複合問題

配列 D = { 5, 2, 8, 1, 4 } に対して次のコードを実行したとき、配列Dの内容がどう変わるか答えなさい。

i を 1 から 4 まで 1 ずつ増やしながら繰り返す
  もし D[i] > D[i+1] ならば
    temp ← D[i]
    D[i] ← D[i+1]
    D[i+1] ← temp
  を実行する
を実行する

練習問題の解答・解説

問題1の解答: kekka = 24

ikekka計算
初期-1-
1回目111×1=1
2回目221×2=2
3回目362×3=6
4回目4246×4=24

このコードは階乗を計算しています。4! = 1×2×3×4 = 24

問題2の解答: count = 4

iA[i]A[i]>=5?count
14いいえ0
28はい1
33いいえ1
49はい2
56はい3
62いいえ3
77はい4

5以上の要素は 8, 9, 6, 7 の4つです。

問題3の解答: saidai = 23、ichi = 3

iB[i]B[i]>saidai?saidaiichi
初期--121
25いいえ121
323はい233
48いいえ233
517いいえ233

最大値は23で、配列の3番目にあります。ichiは最大値の位置を記録しています。

問題4の解答

  • 【ア】goukei + C[i]
  • 【イ】goukei / 5

検算:10+20+30+40+50 = 150、150÷5 = 30

問題5の解答: D = { 2, 5, 1, 4, 8 }

iD[i]D[i+1]交換?結果
152はい2,5,8,1,4
258いいえ2,5,8,1,4
381はい2,5,1,8,4
484はい2,5,1,4,8

これはバブルソートの1回分の走査です。最大値(8)が一番右に移動します。

ソートアルゴリズムの解説で全体像を学べます。

よくある間違い・ひっかけポイント

1. 配列の添字の開始番号

問題によって、配列が0から始まる場合と1から始まる場合があります。問題文の「添字は○から始まる」を必ず確認しましょう。

2. 繰り返しの回数を間違える

「i を 1 から 5 まで」は5回繰り返します(i=1,2,3,4,5)。「5まで」は5を含みます

3. 代入の向きを逆に読む

x ← y + 1 は「yの値+1をxに入れる」です。yの値は変わりません。矢印の左側が変わる変数、右側は計算するだけです。

4. 「以上」と「より大きい」の違い

x >= 10 は10を含む(10以上)。x > 10 は10を含まない(10より大きい)。境界値でどちらに入るかが変わります。

5. 条件を満たさない回で変数を見失う

繰り返しの中に条件分岐があると、「条件を満たさなかった回」で変数が変わらないことを忘れがちです。変数表で「変化なし」の行も必ず書きましょう。

トレースを速くするコツ

  1. まずコードの「目的」を推測する — パターン(カウント・合計・最大値・ソート)を見抜けば、答えの見当がつきます
  2. 変数表は省略しない — 「頭の中でできる」と思っても必ず書く。ケアレスミスの大半は暗算が原因
  3. 繰り返しの最初と最後を確認する — 「何回繰り返すか」を先に把握する
  4. 選択肢を活用する — 共通テストは選択式。途中で選択肢と照合し、消去法を使う

たとえば「繰り返しが10回あるコード」で選択肢が「45, 55, 100, 110」なら、合計パターンだと推測できます。1〜10の合計は55なので、全部トレースしなくても答えの見当がつきます。

フローチャートの読み方を知っていると、コードの流れを図で整理できます。

共通テスト本番での時間配分

共通テスト「情報Ⅰ」は60分で大問4つ。擬似コード問題(プログラミング分野)は大問1つ分で、目安は15〜18分です。

推奨の解き方手順

  1. 問題文を読む(2分) — 何を求められているか、配列の添字は何始まりかを確認
  2. コード全体を眺める(1分) — パターンを見抜く。「カウントだな」「最大値探索だな」と目星をつける
  3. 変数表を書いてトレース(8〜10分) — 1行ずつ丁寧に。ここが得点の核心
  4. 選択肢と照合(2分) — 答えを選ぶ。迷ったら消去法
  5. 見直し(2分) — 計算ミスがないか、添字のずれがないか確認

時間が足りないときの戦略

全問トレースする時間がない場合は、以下の優先順位で解きましょう。

  • 穴埋め問題 — パターンを知っていれば即答できる(最優先)
  • 実行結果を問う問題 — トレースが必要だが確実に得点できる
  • コードの目的を説明する問題 — パターン名がわかれば答えられる

「全部解こうとして全部中途半端」より「確実に解ける問題を先に片付ける」ほうが得点は高くなります。

まとめ

  • ✅ 擬似コードの基本要素:変数・条件分岐・繰り返し・配列
  • ✅ トレース=変数表を紙に書いて1行ずつ実行する
  • ✅ パターン:カウント・合計・最大値・交換・フラグ
  • ✅ 添字の開始番号と「以上/より大きい」に注意
  • ✅ 選択肢を活用して時間を節約する

次のステップ

トレースは練習するほど速くなります。最初は時間がかかっても、5問解けば感覚がつかめます。共通テスト本番に向けて、コツコツ練習していきましょう!

⚡ JavaScriptで擬似コードの考え方を体験しよう!

変数・条件分岐・繰り返しを実際にコードを書いて学べます。完全無料・登録不要。

JavaScriptレッスン1を始める →
目次

コースで実際に手を動かして学ぼう

レッスンではコードを書きながら基礎が身につきます

HTMLコースを始める →

同じテーマの記事

📣 この記事が役に立ったら

Xでシェア

💬 引用する場合はこちらをご利用ください:

共通テスト情報Ⅰの擬似コード問題をトレースで解く方法を初心者向けに解説。変数表の書き方、パターン別解法、練習問題5問付きで得点力アップ。

出典: https://start-web-programming.com/blog/joho1-exam-pseudo-code-reading/