ITパスポート アルゴリズム問題の解き方【擬似言語・ループ・トレース表】
この記事でわかること(30秒サマリ)
- ITパスポートのアルゴリズム問題(擬似言語)の出題パターン
- ループ・条件分岐・配列の基本3パターン
- トレース表の書き方(ステップごとの変数追跡)
- 令和5〜8年度の出題傾向分析
- プログラミング未経験者が得点するための戦略
- 合格ナビのAI解説3レベルの使い方
---
アルゴリズム問題はなぜ難しいのか
ITパスポートの中でアルゴリズム問題が「難しい」と感じられる理由は、知識の暗記では解けないからです。他の問題は「用語の意味を覚えておけば正解できる」ものが多いですが、アルゴリズム問題は「プログラムの動きを頭の中でシミュレートする」必要があります。
しかし出題パターンは限られており、基本の3パターン(ループ・条件分岐・配列)を理解してトレース表を書けるようになれば、正解できる問題が大幅に増えます。
---
擬似言語の基本ルール
ITパスポートのアルゴリズム問題は「擬似言語」と呼ばれる日本語ベースの疑似コードで出題されます。実際のPythonやJavaとは異なりますが、構造は同じです。
主な記述ルール
| 記法 | 意味 |
|---|---|
| `←` | 代入(右辺の値を左辺の変数に入れる) |
| `while 条件` | 条件が真のあいだ繰り返す |
| `for 変数 = 開始 to 終了` | 変数を1ずつ増やしながら繰り返す |
| `if 条件` | 条件が真のとき実行する |
| `else` | 条件が偽のとき実行する |
| `配列名[添字]` | 配列の要素を取り出す |
---
基本パターン1:ループ(繰り返し)
ループ問題は「ある処理を何回繰り返したか」「最終的に変数がいくつになるか」を問うものが多いです。
例題
```
i ← 1
合計 ← 0
while i ≦ 5
合計 ← 合計 + i
i ← i + 1
```
このプログラムが終了したとき、合計はいくつか?
トレース表の書き方
変数の変化をステップごとに表形式で追跡します。
| ステップ | i | 合計 |
|---|---|---|
| 初期値 | 1 | 0 |
| 1回目 | 2 | 1 |
| 2回目 | 3 | 3 |
| 3回目 | 4 | 6 |
| 4回目 | 5 | 10 |
| 5回目 | 6 | 15 |
| 終了(i=6 > 5) | 6 | 15 |
答えは「15」です。
トレース表を書く手順は単純で、「各行のコードを1行ずつ実行し、変数の値を表に書き込む」だけです。焦らず1行ずつ進めることが正確なトレースのコツです。
---
基本パターン2:条件分岐(if-else)
条件分岐問題は「ある条件のときに処理が分かれる」パターンです。「どの条件が満たされるか」を正確に判断することがポイントです。
よくある出題形式
- 複数の条件(AND・OR)が組み合わさる
- ネスト(入れ子)した条件分岐
注意点
「else if」が続く場合、最初に真になった条件でその後の分岐はスキップされます。「どの条件が先に評価されるか」の順序を見誤らないようにします。
試験問題では選択肢が「条件Aのとき〇〇を実行する」という形で4択になっています。プログラムの流れを正確に読み取れれば、消去法でも正解に近づけます。
---
基本パターン3:配列(データの集合)
配列問題は「配列の要素を操作するプログラムの出力を求める」ものが多いです。
配列の基本
配列は複数のデータを一列に並べたものです。`データ[1]` は1番目の要素、`データ[3]` は3番目の要素を指します(IPAの擬似言語では添字が1始まりの場合が多いです)。
よく出る操作パターン
- 最大値・最小値を求める:配列の全要素を順番に比較する
- 合計・平均を求める:配列の全要素を足して合計を計算する
- 並び替え(ソート):隣り合う要素を比較して順序を入れ替える
---
令和5〜8年度の出題傾向
IPAが公表している過去問から、アルゴリズム関連の出題パターンを分析します。
令和5・6年度
ループと条件分岐の組み合わせ問題が中心でした。プログラムの最終的な変数の値を求める問題、ある条件を満たすループの回数を求める問題が出題されました。
令和7年度
配列を使ったデータ処理(合計・最大値)の問題が複数出題されました。また、プログラムの「穴埋め」形式(コードの一部が空白になっており、入るコードを選ぶ)も見られました。
令和8年度(2026年現在の最新)
穴埋め形式の出題比率が高まっています。「このプログラムはどのような処理を行っているか」という説明問題も出題されており、実行結果だけでなくプログラムの意図を読み取る力が求められています。
共通する出題の特徴
- 変数の数は2〜4個程度(複雑すぎない)
- ループの繰り返し回数は5〜10回程度(手でトレースできる範囲)
- 選択肢は数値または短い説明文(計算で確認できる)
---
プログラミング未経験者の得点戦略
アルゴリズム問題が苦手な場合、以下の戦略が有効です。
1. 捨て問にしないための最低限の理解
アルゴリズム問題を完全に捨てると、テクノロジ系のスコアが低下するリスクがあります。最低限「ループと条件分岐のトレース表」だけでも書けるようにして、易しめの問題から得点します。
2. 消去法の活用
プログラムの詳細がわからなくても、「明らかにおかしい選択肢」を消去することで2択・3択に絞れます。数値の選択肢なら、概算で外れた数値を消去できます。
3. 過去問の繰り返しが最有効
アルゴリズム問題は出題パターンが限られています。過去3〜5年分の問題を繰り返し解いてトレース表を書く練習をすることで、本番の問題にも対応できるようになります。
---
合格ナビのAI解説3レベルの使い方
合格ナビでは、アルゴリズム問題を含む全過去問にAI解説を提供しています。
初心者レベル:「この変数はここで5になります。次のループで…」というように、変数の値がステップごとに日本語で説明されます。トレース表を書く代わりに、AIが手順を示してくれます。
標準レベル:ループ・条件分岐の仕組みと、このプログラムが何をしているかの説明が中心です。
上級者レベル:アルゴリズムの名称(線形探索・バブルソート等)や計算量の背景まで解説します。
最初は初心者レベルで「どう追跡するか」を体で覚え、慣れたら標準レベルで理解を深めるという使い方が効果的です。
---
まとめ:アルゴリズムは「手を動かす」練習が全て
アルゴリズム問題は理屈を読むだけでは身につきません。実際にトレース表を紙に書いて変数を追跡する練習を繰り返すことが、最も効果的な学習法です。
- ループ問題:トレース表で変数を1行ずつ追う
- 条件分岐問題:条件の評価順を正確に読む
- 配列問題:添字と要素の対応を丁寧に確認する
この3パターンを体で覚えれば、アルゴリズム問題で安定して得点できるようになります。
他の分野の学習方針については3分野完全攻略ガイド、テクノロジ系の全体像はシラバス6.3改訂対応ガイドで確認できます。
---
