式は左から順に計算されるとは限りません。どれを先に計算するかは演算子ごとに決まっていて、その順番は記述形式に表で示されています。表を丸暗記する必要はありません。この回では算術の段── かっこ・mod・単項の + - ── を扱います。表の下のほうにある and / or / not は、G8-2 で扱います。
第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が決めている優先順位
出典:IPA「擬似言語の記述形式」
〔演算子と優先順位〕
| 演算子の種類 | 演算子 | 優先度 |
|---|---|---|
| 式 | () . |
高 |
| 単項演算子 | not + - |
↑ |
| 二項演算子(乗除) | mod × ÷ |
↑ |
| 二項演算子(加減) | + - |
↑ |
| 二項演算子(関係) | ≠ ≦ ≧ < = > |
↑ |
| 二項演算子(論理積) | and |
↑ |
| 二項演算子(論理和) | or |
低 |
注記 演算子 . は,メンバ変数又はメソッドのアクセスを表す。
演算子 mod は,剰余算を表す。
※ 原典では優先度の欄が上下1本の矢印で示されています。ここでは行ごとに ↑ で置き換えています。
上にあるものほど先に計算されます。7段ありますが、出題を読むときに実際に効いてくるのは次の3つです。
この表から持ち帰る3つ
① かっこの中がいちばん先。② mod は × ÷ と同じ段=+ - より先。③ 比べるのは、計算したあと。
残りは、算数と同じ「掛け算・割り算が先、足し算・引き算があと」という常識どおりです。③の= や > といった比べる演算子が + - より下にあるのは、a + 1 > b が (a + 1) > b という意味になるということです。
表のいちばん下にある and と or、単項の not は真偽を組み立てる演算子で、G8-2 でまとめて扱います。この3つがどれよりも下にあることだけ、ここで見ておいてください。
かっこ ── 最優先。書いた人が順番を指定した場所
実際の出題から1行だけ引きます。mod を使って、配列の置き場所を計算する関数です。
出典:令和5年度 基本情報技術者試験 科目B 公開問題 問4(プログラムの一部)
○整数型: calcHash2(整数型: value) return ((value + 3) mod hashArrayの要素数) + 1
この hashArray は、同じプログラムの別の場所で次のように用意されています。
hashArray ← {5個の -1}
要素数は 5 です。つまり hashArrayの要素数 のところは 5 と読み替えられます。
かっこが二重になっています。内側の (value + 3) を外すと、返る数が変わります。value を 18 として並べてみます。
かっこ1つで、答えがここまで変わる(value = 18)
出題どおり ((value + 3) mod 5) + 1
先に 18 + 3 = 21→ 21 mod 5 = 1→ +1 して 2
内側のかっこを外すと (value + 3 mod 5) + 1
先に 3 mod 5 = 3→ 18 + 3 = 21→ +1 して 22
mod は + より上の段にあります。かっこが無ければ mod のほうが先なので、value + 3 mod 5 は value + (3 mod 5) という意味になります。
この関数が返すのは要素番号です。2 は使える番号、22番目の要素はありません。それでも書き方としては正しいままなので、どこも間違いを教えてくれません。
かっこが書いてあるところは、書いた人が順番を気にした場所です。読むときの目印になります。
かっこを1つ外すだけで、答えが変わる
この関数が返すのは要素番号。2 は使える番号だが、22番目の要素は無い
かっこがあるとき ((18 + 3) mod 5) + 1
| 順 | 計算するところ | 結果 |
|---|---|---|
| ① | 18 + 3 | 21 |
| ② | 21 mod 5 | 1 |
| ③ | 1 + 1 | 2 |
内側のかっこから手を付ける。答えは 2
内側のかっこを外すと (18 + 3 mod 5) + 1
| 順 | 計算するところ | 結果 |
|---|---|---|
| ① | 3 mod 5 | 3 |
| ② | 18 + 3 | 21 |
| ③ | 21 + 1 | 22 |
mod が + より先に計算される。答えは 22
かっこが書いてあるところは、書いた人が順番を気にした場所
同じことを、1行ずつ動かして確かめます。「いま計算していること」の欄に、式のどこから手を付けているかが出ます。
式はどう計算されるか ── かっこと mod
当サイトオリジナル
ループ開始前
いま計算していること
変数の状態
結果
トレース表(進めると1行ずつ積み上がります)
練習
擬似言語の〔演算子と優先順位〕では、段がこう決まっています。
優先順位(上の段が先)
式( ) .
乗除mod × ÷
加減+ -
同じ段のもの同士は左からです。
かっこを付けずに n × 2 + 1 mod 3 と書いた場合、どう計算されますか。
mod ── 割った余り
記述形式の注記に一行だけ書かれています ── 「演算子 mod は,剰余算を表す」。a mod b は a を b で割ったときの余りです。
| 式 | 何回割れて、いくつ残るか |
|---|---|
7 mod 3 |
7 ÷ 3 = 2 余り 1 3 が 2回取れて、1 残る |
18 mod 5 |
18 ÷ 5 = 3 余り 3 5 が 3回取れて、3 残る |
3 mod 5 |
3 ÷ 5 = 0 余り 3 5 は 1回も取れず、3 がそのまま残る |
10 mod 5 |
10 ÷ 5 = 2 余り 0 5 が 2回取れて、0(割り切れる) |
3 mod 5 のように割られる数のほうが小さいと、とっさに答えが出にくくなります。1回も割れないので、そのまま全部が余りです。割り算の形に直すと 3 ÷ 5 = 0 余り 3 ── 商が 0 で、余りが 3。だから 3 mod 5 は 3 です。
割る数のほうを答えてしまう間違いが、いちばん多いところです。3 mod 5 の答えは 5 に関係する数ではなく、3 そのもの。0 mod 5 なら 0 ÷ 5 = 0 余り 0 で 0 です。
ここは実際の出題で計算させられる場所です。a mod b の答えは必ず 0 以上 b 未満(b が正のとき)と覚えておくと、答えが範囲から外れたときに気づけます。
mod がプログラムに出てきたら、たいてい次のどちらかの意図です。
| 書かれ方 | 意味していること |
|---|---|
(x mod 2)が0と等しい |
x は偶数 |
(x mod n)が0と等しい |
x は n の倍数(n で割り切れる) |
(x mod n) + 1 |
どんな x でも 1 〜 n の範囲に収める(要素番号を作るときの定番) |
実際の出題では、条件が日本語で書かれることもあります。次の1行がそれです。
出典:令和7年度 基本情報技術者試験 科目B 公開問題 問1(プログラムの一部)
if ((i mod 4)が0と等しい)
練習
実際の出題にある if ((i mod 4)が0と等しい) の行です。この if が真になるのは、i がどんなときですか。
3 mod 7 の答えはいくつですか。
(x mod 3)が1と等しい という条件が真になるのは、x がどんなときですか。
単項の + - と、演算子 .
表の2段目にある単項演算子は、後ろの1つだけに効く演算子です。-1 の - がこれで、「1 から引く」ではなく「マイナスの 1」という符号です。not も、後ろの1つの真偽をひっくり返すので単項です(G8-2)。
3 - 1 の -(引き算)と -1 の -(符号)は同じ記号で別の演算子で、表でも別の段にいます。前に数があれば引き算、無ければ符号と読み分けます。
出典:令和5年度 基本情報技術者試験 科目B 公開問題 問4(プログラムの一部)
hashArray ← {5個の -1}
かっこの節で、要素数を確かめるために引いた行です。-1 の - が単項演算子にあたります。
練習
実際の出題に、次の1行があります。この代入で hashArray はどうなりますか。
hashArray ← {5個の -1}
. は、いま覚えなくてよい
表のいちばん上にある . は、注記のとおり「メンバ変数又はメソッドのアクセスを表す」=オブジェクト指向の記法で使うものです。x.length のように書きます。G12でまとめて扱います(準備中)。ここでは「表の最上段に () と並んでいる」ことだけ見ておけば十分です。
この文法が実際に出た問題
ここまでの内容がそのまま得点になる出題があります。プログラムの中身は難しくなく、mod を5回、正確に計算できるかで答えが決まります。上で断片を引いた calcHash2 と {5個の -1} は、この問題のものです。
出典:令和5年度 基本情報技術者試験 科目B 公開問題 問4(独立行政法人情報処理推進機構)
つまずきポイントまとめ
| まちがえ方 | 正しい理解 |
|---|---|
| 式を左から順に計算する | 優先度の高い段から。value + 3 mod 5 は value + (3 mod 5) |
mod を足し算・引き算と同じ扱いにする |
× ÷ と同じ段。+ - より先に計算される |
3 mod 5 が分からず手が止まる |
1回も割れないのでそのまま 3。答えは必ず 0 以上 5 未満 |
(x mod n) + 1 の + 1 を忘れる |
余りは 0〜n-1、要素番号は 1〜n。そのずれを埋める + 1 |
or を「どちらか片方だけ」と読む |
少なくともどちらか一方。両方真でも真 |
and の繰返しを抜ける条件を「両方偽」と思う |
片方が偽になった瞬間に全体が偽になって抜ける |
> の否定を < だと思う |
> の否定は ≦。境界の値がどちらに入るかを必ず確かめる |
-1 の - を引き算だと思う |
前に数が無ければ符号(単項演算子) |
次に読む
この記事で引用した資料
- 擬似言語の記述形式 科目Bの公開問題・サンプル問題の各冊子に掲載。冊子上の名称は年度により「基本情報技術者試験用」と「基本情報技術者試験,応用情報技術者試験用」があるが、本文は同一
- 令和5年度 基本情報技術者試験 科目B 公開問題(2023年7月6日公開)
- 令和7年度 基本情報技術者試験 科目B 公開問題(2025年7月4日公開)
いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。
シミュレータと練習問題は当サイトのオリジナルです。

