基本情報技術者試験の科目Bに出てくる擬似言語は、この試験のためだけに作られた書き方です。JavaでもPythonでもないので、誰もが「初めて見る言語」で受験します。
第1部 擬似言語の教科書 地図+20回
G1擬似言語の地図(入口)G2-1変数と宣言G2-2データ型G2-3代入「←」G3-1部品を呼ぶ/戻るG3-2引数G3-3戻り値・手続と関数G4-1配列と要素番号G4-2配列の読み書きG5選択処理 ifG6-1繰返し forG6-2配列を for で回すG7繰返し whileG8-1算術演算子と優先順位G8-2and / or / notG9-12次元配列G9-22重ループG10大域変数と局所変数G11未定義G12-1演算子 . の読み方G12-2クラスとはG12-3コンストラクタ
見慣れない記号や書き方が出てきたら、このページで引いてください。記号の意味・書き方の型・IPAが定めた仕様の原文を1枚にまとめ、その場で動かせる擬似言語のシミュレータも置いてあります。
擬似言語とは ── 試験のためだけに作られた書き方
科目Bは100分で20問。そのうち16問がプログラムを読む問題で、残り4問が情報セキュリティです。
科目Bの構成(出典:情報処理技術者試験 試験要綱 Ver5.6 の出題数・試験時間より作成)
そのプログラムに使う言語を、IPAは次のように決めています。
出典:試験要綱 Ver5.6 科目B 出題範囲
注記 プログラム言語について,基本情報技術者試験では擬似言語を扱う。
ネット上では「疑似言語」という表記も見かけますが、IPAの正式な表記は「擬似言語」(てへんの「擬」)です。読み方はどちらも「ぎじげんご」で、指しているものは同じです。
特定の言語を知っていることは前提にされていません。裏を返せば、プログラミング経験者でも読み直す必要があるということです。
擬似言語の書き方をまとめた表は、科目Bの問題に毎回付いています。暗記は必要ありません。
ただし試験時間は100分で20問。本番で表を読み込む時間はありません。見た瞬間に意味が浮かぶまで、事前に見慣れておくのが唯一の対策です。
記号の読み方 ── 13個を一覧で
擬似言語で使われる記号は、これで全部です。
| 記号 | 読み方 | 意味 | 出てくる形 | 扱う回 |
|---|---|---|---|---|
← |
やじるし | 右の値を、左に上書きする。右から左への一方通行。よくある言語の = にあたる |
x ← 1 |
G2-3 |
: |
コロン | 前が型、後ろが名前。int x; と順番が逆 |
整数型: x |
G2-1 |
○ |
まる | ここから1つの部品が始まるという見出し | ○整数型: calc(整数型: n) |
G3-1 |
{ } |
波かっこ | 中身をまとめて書く(配列を作る) | data ← {5, 3, 8} |
G4 |
[ ] |
角かっこ | 何番目かを指す(配列から取り出す)。先頭は [1]。0からではありません |
data[2] |
G4 |
, |
コンマ | 区切り。同じ型の変数を、まとめて並べる | 整数型: i, j |
G2-1 |
= |
イコール | 等しいか調べる。代入ではありません(よくある言語の ==) |
if (x = 1) |
G8 |
≠ > < ≧ ≦ |
─ | 比べる。≧ ≦ は等しいときも真。>= や != のような書き方は出てきません |
x ≧ 5 |
G8 |
+ - × ÷ |
─ | 四則。算数で習った記号が、そのまま全角で書かれます | x + 1 |
G8 |
mod |
モッド | 割った余り(よくある言語の %) |
x mod 5 |
G8 |
and or not |
─ | かつ/または/でない | (x > 0) and (y > 0) |
G8 |
true false |
─ | 真と偽そのものを表す値 | 論理型: ok ← true |
G2-2 |
/* */ // |
─ | 注釈。実行されません | // ここで入れ替える |
G2-3 |
書き方の形 ── 6つだけ覚える
プログラムを組み立てる形は、次の10通りです。
| こう書かれる | やっていること | 解説 |
|---|---|---|
整数型: x |
値を入れる箱を用意する | G2-1 変数と宣言 |
x ← 1 |
箱の中身を 1 で上書きする | G2-3 代入「←」 |
整数型の配列: data ← {5, 3, 8} |
3つ入った配列を作る。data[2] で2番目を取り出す |
G4 配列 |
○整数型: calc(整数型: n) |
ここから calc という部品が始まる |
G3-1 部品を呼ぶ |
calc(5) |
その部品へ移り、終わったら戻ってくる | G3-1 部品を呼ぶ |
if (x > 5) … elseif … else … endif |
枝分かれする。上から見て、最初に真になった枝だけ通る。{ } では閉じません |
G5 選択処理 |
for (i を 1 から 5 まで 1 ずつ増やす) … endfor |
回数を決めてくり返す。回し方が日本語で書いてあります | G6 for と制御記述 |
while (x > 0) … endwhile / do … while |
条件が真の間くり返す。何回で終わるかは動かすまで分からない | G7 while / do-while |
table[2, 3] |
2行3列目を指す(2次元配列) | G9-1 2次元配列 |
大域: 整数型: total |
どの部品からも見える共通の箱 | G10 大域変数と局所変数 |
閉じ方が処理ごとに違うので、endif endfor endwhile のどれで閉じているかを見れば、そこが何の処理だったのかが分かります。長いプログラムで迷子になったときの目印になります。
①代入は ←。= は「等しいか調べる」ほうです。
②配列の先頭は [1]。0ではありません(問題文にも毎回書かれます)。
③閉じ方が処理ごとに違う。} ではまとめられません。
実際の出題は、こんな見た目で出る
いちばん短い出題は7行です。配列も繰返しも出てきません。それでも間違える人が出ます。
出典:基本情報技術者試験 科目B サンプル問題 問1(独立行政法人情報処理推進機構)
読めるようになるコツ ── 頭で追わず、書き出す
擬似言語がわからないと感じるとき、原因はたいてい記号を知らないことではありません。変数の中身を覚えていられないことです。
プログラミングが初めての人ほど「自分には向いていない」と思いがちですが、経験者でも頭の中だけで追えば同じように間違えます。やり方の問題です。
x に 5 が入って、次の行で 8 に変わって、その次で y に渡って ── これを頭の中だけで追うと、3つめか4つめで必ずどこかがずれます。注意力の問題ではありません。
科目Bのプログラムを読む手順
- 問題文を先に読む。「この関数は何をするか」が必ず書いてあります
- どこから始めるかを確かめる。「手続◯◯を呼び出すと」と指定されています
- 変数を横に並べて、1行実行するごとに書き足す(=トレース)
- 問われている行まで来たら、その行を読むだけ
3番目がすべてです。書き出してしまえば、覚えておく作業がゼロになります。
まず、いちばん短い形で体験してください。「次へ」を押すと1行ずつ実行され、変数の中身が変わっていきます。
はじめてのトレース ── 3行だけ動かす
当サイトオリジナルの例題
ループ開始前
いま計算していること
変数の状態
出力
トレース表(進めると1行ずつ積み上がります)
いま何が起きたか
整数型: x ← 5x という箱を用意して、5 を入れた
整数型: y ← x + 3x の中身 5 に 3 を足して、y に 8 を入れた
x ← yy の中身 8 で、x を上書きした
たった3行でも、x の中身は 5 → 8 と変わります。「いまの x」がどれなのかは、書き出さないと追えません。
この記事のあとに続く19回では、どの回にも擬似言語のシミュレータが入っています。読んで分からなければ、動かしてください。
基本情報技術者試験はCBT(画面上での受験)です。手元に書き出せるものが使えるかは会場の案内にしたがってください。頭の中だけで追わないという原則は、どちらにしても変わりません。
20回で身につける順番
あとの回が前の回を使う順に並べています。上から読むのがいちばん速いですが、詰まった要素だけ拾っても構いません。各回に1行ずつ動かせるトレースと、その回の文法だけで解ける練習問題があります。
整数型: x ← 1 を読める。用意することと、入れることは別○ は部品の見出しreturn と、手続と関数の見分け方[ ] と { } の役割分担← の左右で読みと書きが反対になるmod・and/or/not. の読み方 公開中 . は「〜の中の」と読むIPAが定めた仕様 ── 記述形式の原文
上の表は、IPAが定めた「擬似言語の記述形式」を、実物の書き方に置き換えたものです。原文は、IPAが公開している科目Bの問題(PDF)の冒頭に毎回載っています。
IPAの定義(擬似言語の記述形式)を全文ひらく
出典:IPA「擬似言語の記述形式」
擬似言語を使用した問題では,各問題文中に注記がない限り,次の記述形式が適用されているものとする。
〔擬似言語の記述形式〕
- ○手続名又は関数名
- 手続又は関数を宣言する。
- 型名: 変数名
- 変数を宣言する。
-
/* 注釈 */ // 注釈
- 注釈を記述する。
- 変数名 ← 式
- 変数に式の値を代入する。
- 手続名又は関数名(引数, …)
- 手続又は関数を呼び出し,引数を受け渡す。
-
if (条件式1) 処理1 elseif (条件式2) 処理2 elseif (条件式n) 処理n else 処理n+1 endif
- 選択処理を示す。
条件式を上から評価し,最初に真になった条件式に対応する処理を実行する。以降の条件式は評価せず,対応する処理も実行しない。どの条件式も真にならないときは,処理n+1を実行する。
各処理は,0 以上の文の集まりである。
elseif と処理の組みは,複数記述することがあり,省略することもある。
else と処理n+1の組みは一つだけ記述し,省略することもある。 -
while (条件式) 処理 endwhile
- 前判定繰返し処理を示す。
条件式が真の間,処理を繰返し実行する。
処理は,0 以上の文の集まりである。 -
do 処理 while (条件式)
- 後判定繰返し処理を示す。
処理を実行し,条件式が真の間,処理を繰返し実行する。
処理は,0 以上の文の集まりである。 -
for (制御記述) 処理 endfor
- 繰返し処理を示す。
制御記述の内容に基づいて,処理を繰返し実行する。
処理は,0 以上の文の集まりである。
これに加えて、次の4つが決められています。
出典:IPA「擬似言語の記述形式」
〔演算子と優先順位〕
| 演算子の種類 | 演算子 | 優先度 |
|---|---|---|
| 式 | () . |
高 |
| 単項演算子 | not + - |
↑ |
| 二項演算子(乗除) | mod × ÷ |
↑ |
| 二項演算子(加減) | + - |
↑ |
| 二項演算子(関係) | ≠ ≦ ≧ < = > |
↑ |
| 二項演算子(論理積) | and |
↑ |
| 二項演算子(論理和) | or |
低 |
注記 演算子 . は,メンバ変数又はメソッドのアクセスを表す。
演算子 mod は,剰余算を表す。
※ 原典では優先度の欄が上下1本の矢印で示されています。ここでは行ごとに ↑ で置き換えています。
〔論理型の定数〕
true,false
〔配列〕
配列の要素は,“[”と“]”の間にアクセス対象要素の要素番号を指定することでアクセスする。なお,二次元配列の要素番号は,行番号,列番号の順に“,”で区切って指定する。
“{”は配列の内容の始まりを,“}”は配列の内容の終わりを表す。ただし,二次元配列において,内側の“{”と“}”に囲まれた部分は,1 行分の内容を表す。
〔未定義,未定義の値〕
変数に値が格納されていない状態を,“未定義”という。変数に“未定義の値”を代入すると,その変数は未定義になる。
次に読む
この記事で引用した資料
- 擬似言語の記述形式 科目Bの公開問題・サンプル問題の各冊子に掲載。冊子上の名称は年度により「基本情報技術者試験用」と「基本情報技術者試験,応用情報技術者試験用」があるが、本文は同一
- 情報処理技術者試験 試験要綱 Ver5.6(2026年7月6日)
- 基本情報技術者試験 科目B サンプル問題(2022年12月26日公開)
いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。

