擬似言語とは|記号の読み方と書き方を1枚で【基本情報技術者試験 科目B】

基本情報技術者試験

現行FE シラバス Ver9.2 準拠擬似言語の記述形式は2022年から変更なし最終更新 2026-08-14

基本情報技術者試験の科目Bに出てくる擬似言語は、この試験のためだけに作られた書き方です。JavaでもPythonでもないので、誰もが「初めて見る言語」で受験します。

見慣れない記号や書き方が出てきたら、このページで引いてください。記号の意味・書き方の型・IPAが定めた仕様の原文を1枚にまとめ、その場で動かせる擬似言語のシミュレータも置いてあります。

擬似言語とは ── 試験のためだけに作られた書き方

科目Bは100分で20問。そのうち16問がプログラムを読む問題で、残り4問が情報セキュリティです。

科目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 のどれで閉じているかを見れば、そこが何の処理だったのかが分かります。長いプログラムで迷子になったときの目印になります。

プログラミング経験があるほど、読み飛ばす3か所

①代入は ←。= は「等しいか調べる」ほうです。
②配列の先頭は [1]。0ではありません(問題文にも毎回書かれます)。
③閉じ方が処理ごとに違う。} ではまとめられません。

実際の出題は、こんな見た目で出る

いちばん短い出題は7行です。配列も繰返しも出てきません。それでも間違える人が出ます。

出典:基本情報技術者試験 科目B サンプル問題 問1(独立行政法人情報処理推進機構)

読めるようになるコツ ── 頭で追わず、書き出す

擬似言語がわからないと感じるとき、原因はたいてい記号を知らないことではありません。変数の中身を覚えていられないことです。

プログラミングが初めての人ほど「自分には向いていない」と思いがちですが、経験者でも頭の中だけで追えば同じように間違えます。やり方の問題です。

x に 5 が入って、次の行で 8 に変わって、その次で y に渡って ── これを頭の中だけで追うと、3つめか4つめで必ずどこかがずれます。注意力の問題ではありません。

科目Bのプログラムを読む手順

  1. 問題文を先に読む。「この関数は何をするか」が必ず書いてあります
  2. どこから始めるかを確かめる。「手続◯◯を呼び出すと」と指定されています
  3. 変数を横に並べて、1行実行するごとに書き足す(=トレース)
  4. 問われている行まで来たら、その行を読むだけ

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行ずつ動かせるトレースと、その回の文法だけで解ける練習問題があります。

G2-1変数と宣言 公開中 整数型: x ← 1 を読める。用意することと、入れることは別
G2-2データ型 公開中 コロンの前を見れば、その箱に何が入るか分かる
G2-3代入「←」 公開中 代入は上書き。前の値はどこにも残らない
G3-1部品を呼ぶ 公開中 呼んだら戻ってくるを追える。○ は部品の見出し
G3-2引数 公開中 呼び出しで渡す値。対応するのは順番
G3-3戻り値 公開中 return と、手続と関数の見分け方
G4-1配列と要素番号 公開中 要素番号が1から始まる。[ ] と { } の役割分担
G4-2配列の読み書き 公開中 ← の左右で読みと書きが反対になる
G5選択処理 公開中 上から評価し、最初に真になったものだけ実行される
G6-1繰返し for と制御記述 公開中 回す回数が先に決まっている繰返しを読む
G6-2配列を for で回す 公開中 i が要素番号になる
G7繰返し while / do-while 公開中 条件で終わる繰返し。前判定と後判定の差は0回か1回か
G8-1算術演算子と優先順位 公開中 式は左から順に計算されない。mod・and/or/not
G8-2and / or / not 公開中 and は真が1通り、or は偽が1通り
G9-12次元配列 公開中 [行, 列] は行が先、列があと
G9-22重ループ 公開中 外がわが行、内がわが列
G10大域変数と局所変数 公開中 大域: はどこから見ても同じ1つ
G11未定義と「未定義の値」 公開中 値が入っていない状態の扱い
G12-1演算子 . の読み方 公開中 . は「〜の中の」と読む
G12-2クラスとは 公開中 その問題のために増える型
G12-3コンストラクタ 公開中 クラスから中身を作って使う

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 行分の内容を表す。

〔未定義,未定義の値〕

変数に値が格納されていない状態を,“未定義”という。変数に“未定義の値”を代入すると,その変数は未定義になる。

次に読む

この記事で引用した資料

いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。

Copied title and URL