科目Bのコードを読んでいる途中で分からなくなったら、添字と値を別々の欄に書き、条件を判定するたびに1行足すところから始めましょう。頭の中で全部を覚えておく必要はありません。
ここでは、配列から値を探す短い独自例を使います。「見つかったときに何を返すか」と「最後まで見つからないときにどこで止まるか」の両方を確認できます。公式問題の転載や本試験を再現する模試ではなく、トレースの手順を練習するための例です。
科目Bの20問は配点の比率とは分けて考える
IPAの基本情報技術者試験の案内では、科目Bは20問・100分の多肢選択式です。2026年9月時点で適用される試験要綱Ver.5.5では、分野別の問題数が次のように定められています。
| 分野 | 問題数 | 学習で確かめること |
|---|---|---|
| アルゴリズムとプログラミング | 16問 | 条件と変数の変化を追えるか |
| 情報セキュリティ | 4問 | 場面に応じた対策を判断できるか |
16問と4問は出題数の内訳です。要綱は、IRT(項目応答理論)に基づく評価点を算出するため配点割合はないと説明しています。「アルゴリズムが800点分」「12問正解なら600点」とは換算できません。
合格には、科目A・科目Bでそれぞれ1,000点満点中600点以上が必要です。科目A免除を受ける場合は科目Bで判定されます。問題数だけで学習時間を固定せず、実際に解いて難しかった処理や場面へ時間を配分してください。
疑似言語を読む前に初期状態をそろえる
疑似言語は、アルゴリズムの処理を表すための記述方法です。IPAの擬似言語の記述形式・別紙2で、基本情報技術者試験用の書き方を確認できます。特定のプログラミング言語で実行できるコードとして読むのではなく、各行が値をどう変えるかを考えます。
この練習で使う記号は次のとおりです。
| 書き方 | この例での読み方 |
|---|---|
i ← 1 | 変数iに1を代入する |
a[i] | 配列aの添字iの位置にある値 |
if | 条件が真なら内側の処理へ進む |
while | 条件が真の間、内側を繰り返す |
return i | iの値を返し、関数を終了する |
読み始める前に、添字の始まり・初期値・何を返す関数かを確認します。他の言語を知っていても、配列は必ず0から始まると思い込まないことが大切です。以下の例では添字を1から始めると明示します。
独自例:最初に見つかった位置を返す
配列aは {6, 3, 8, 3}、添字は1から4です。関数searchは、引数targetと同じ値を先頭から探し、最初に一致した位置の添字を返します。一致する値がなければ-1を返します。関数を呼ぶたびにaとiは次の初期値になります。
○整数型: search(整数型: target)
整数型の配列: a ← {6, 3, 8, 3}
整数型: i ← 1
while (i ≦ aの要素数)
if (a[i] = target)
return i
endif
i ← i + 1
endwhile
return -1
まずsearch(3)を実行したときの戻り値を考えてください。次の4つから1つ選び、コードのどの行で答えが決まるかも確認しましょう。
- ア:1
- イ:2
- ウ:3
- エ:4
条件を判定するたびに1行書く
初期状態はtarget = 3、i = 1です。aの要素数は4なので、最初のwhile条件1 ≦ 4は真になり、内側へ進みます。
| i | a[i] | 3と一致? | 次の処理 |
|---|---|---|---|
| 1 | 6 | いいえ | iを2に更新 |
| 2 | 3 | はい | 2を返して終了 |
1行目では6 = 3が偽なので、return iは実行しません。ifを抜けてi ← i + 1を実行し、iが2になります。whileへ戻って2 ≦ 4を確認した後、a[2]を読みます。
2行目では3 = 3が真になり、return iを実行します。このときiは2なので、正解はイ:2です。returnで関数が終了するため、その後のiの更新や、3番目・4番目の値の確認は行いません。
添字・値・最後の一致を区別する
- ア:1は初期状態の添字です。a[1]は6であり、探している3とは一致しません。
- イ:2は最初に一致した位置です。
return iが返すのは、この時点の添字2です。 - ウ:3は探している値そのものです。コードは
return a[i]ではなくreturn iなので、値3を返す処理にはなっていません。 - エ:4の位置にも3がありますが、2番目で関数が終了します。この関数は最後の一致位置を探し続ける処理ではありません。
同じ「3」という数字でも、探索する値なのか、添字3なのかで意味が違います。トレース表の欄を分けると、どちらを書いているのかを確認しやすくなります。
自力確認:見つからない場合はどこで止まる?
同じ関数をsearch(9)として呼び出します。配列とiは初期化し直します。戻り値と、最後に判定するwhile条件を、解説を読む前に紙へ書いてください。
全部の値が一致しない場合を追う
while条件はi ≦ 4です。値の比較欄にある≠は「等しくない」を表します。
| i | i ≦ 4 | 値の比較 | 次の処理 |
|---|---|---|---|
| 1 | 真 | 6 ≠ 9 | i ← 2 |
| 2 | 真 | 3 ≠ 9 | i ← 3 |
| 3 | 真 | 8 ≠ 9 | i ← 4 |
| 4 | 真 | 3 ≠ 9 | i ← 5 |
| 5 | 偽 | 読まない | ループ終了 |
戻り値は-1です。 iが5になった時点でwhile条件が偽になり、内側のifには入りません。endwhileの後へ進み、return -1を実行します。
ここではa[5]を読みません。存在しない5番目の要素を読んでから止まるのではなく、while条件で範囲内かを先に判断するからです。また、iが5になっていても、最後の行はreturn iではないので5を返しません。
この例では配列の値を比較した回数は4回、while条件を判定した回数は5回です。「繰り返しの中を実行した回数」と「終了を確かめた判定回数」を分けて数えてみてください。
間違えた行から次の練習を選ぶ
答えだけを覚えるより、最初に自分の表と解説がずれた行を探すと、練習する内容を絞れます。
| 間違い方 | 次に確認すること |
|---|---|
| a[2]を2と書いた | 添字と、そこに入っている値の違い |
| iを更新せず同じ値を読んだ | 代入の実行前と実行後 |
| returnの後も追い続けた | 関数を終了する位置 |
| a[5]を読もうとした | whileの条件を判定する順序 |
この探索例を追えたら、IPAの科目B公開問題で、別の処理にも同じ書き方を試してください。配列の更新、繰り返しの範囲、関数呼出しなど、問題ごとに追跡する変数は変わります。この1例で科目Bの出題範囲全体を学べるわけではありません。
セキュリティの問題では、変数の表の代わりに「誰が・何を扱い・何が起こったか」を整理します。知っている対策でも、問題の状況に合う理由まで説明できるか確認しましょう。科目Aで学んだ用語を、場面の判断に結び付ける練習が必要です。
100分で解く練習と教材の使い分け
20問100分を単純に割ると1問5分ですが、全問に同じ時間を使う必要はありません。最初は時間を測らず正しい順序で追い、慣れてきたら所要時間も記録すると、どの処理で時間がかかるか分かります。
セキュリティを先に解く進め方もありますが、全員に速いとは限りません。公開問題や対策本で試し、正確に解けた順序を自分の時間配分に反映してください。解答を終えた問題では、問われているのが値・添字・実行回数のどれだったかを見直します。
ITパスポートにもアルゴリズムや疑似言語の出題はあります。IPAの記述形式にはITパスポート用の別紙1と、基本情報・応用情報用の別紙2が用意されています。「初めて疑似言語が出てくる試験」と捉えるより、学んだ基礎を使い、科目Bの具体的な処理を追う練習へ進みましょう。
学習全体の順番は基本情報の独学ロードマップ、解説の詳しい本を選ぶときは基本情報のテキスト・科目B対策本を参照してください。試験の構成を確認したい場合は基本情報技術者試験とはにまとめています。
次の1問でも、初期状態を書いてから始めてください。答えが合っていたときも、最後の条件判定とreturnまで説明できれば、別の配列や探索値で試す準備ができています。

![令和8年 情報処理教科書 出るとこだけ! 基本情報技術者 [科目A][科目B]](https://images-na.ssl-images-amazon.com/images/P/4798194409.09.LZZZZZZZ.jpg)




