擬似言語の配列と要素番号|先頭は1から始まる【基本情報技術者試験 科目B】

基本情報技術者試験

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

配列は番号のついた箱が一列に並んだものです。科目Bのプログラムはほとんどが配列を扱うので、ここは避けて通れません。そして擬似言語でいちばん多い取り違えが、この番号です。1 から始まります。

なぜ、箱を並べたものが要るのか

3人の点数を持ちたいとします。変数だけで書くと、こうなります。

整数型: tensuu1 ← 80
整数型: tensuu2 ← 65
整数型: tensuu3 ← 90

3人ならまだしも、40人になると変数を40個宣言することになります。しかも名前が全部違うので、「全員ぶんを順に見る」という書き方ができません。

そこで、1つの名前のうしろに番号を付けて、箱をまとめて持ちます。

整数型の配列: tensuu ← {80, 65, 90}

名前は tensuu ひとつ。中身は tensuu[1]、tensuu[2]、tensuu[3] と番号で呼び分けます。これが配列です。

変数と配列のちがい

変数名前1つに、箱1つ。整数型: x

配列名前1つに、箱がいくつも。整数型の配列: data

配列でも箱1つぶんの中身は、ふつうの変数とまったく同じです。読めるし、上書きもできます。違うのは呼び出すときに番号が要ることだけ。

「〜の配列」が型の名前になる

宣言は 整数型の配列: data のように書きます。型の名前に「の配列」が付いただけで、コロンの前が型・うしろが名前という形は変わりません。

文字列型の配列、論理型の配列 も同じように出てきます。

配列の書き方 ── IPAが決めていること

出典:IPA「擬似言語の記述形式」

〔配列〕

配列の要素は,“[”と“]”の間にアクセス対象要素の要素番号を指定することでアクセスする。なお,二次元配列の要素番号は,行番号,列番号の順に“,”で区切って指定する。
“{”は配列の内容の始まりを,“}”は配列の内容の終わりを表す。ただし,二次元配列において,内側の“{”と“}”に囲まれた部分は,1 行分の内容を表す。

記号の役割は2つに分かれています。

記号 役割 例
[ ] 何番目かを指す data[3] = data の3番目
{ } 中身をまとめて書く {5, 3, 8} = 5と3と8が入った配列

二次元配列({ の中にさらに { があるもの)は G9 で扱います。この回では一列のものだけを見ます。

要素番号 ── 先頭は 1 から

実際の問題文には、ほぼ毎回この一文が入っています。

出典:令和8年度 基本情報技術者試験 科目B 公開問題 問1(同じ断り書きが各年度の問題文にある)

ここで,配列の要素番号は1 から始まる。

つまり 整数型の配列: data ← {5, 3, 8, 1} と書いたとき、箱と番号はこう対応します。

data の中身

15
23
38
41

data[1] が先頭の 5。data[0] は存在しません。

0から数える言語に慣れているほど、ここで1つずれた答えを選んでしまいます。問題文にわざわざ断り書きがあるのは、それだけ間違えやすいからだと考えてください。

次の配列で、data[1] と data[3] はそれぞれいくつですか。

整数型の配列: data ← {7, 4, 9}

要素番号は 1 から。0 番の箱は無い

上の数字が要素番号。data[1] は 7、data[3] は 9

整数型の配列: data ← {7, 4, 9}

0ー

17

24

39

data[0] と書ける言語もあるが、擬似言語には存在しない

番号が1から始まるので、最後の番号=要素数

要素数 ── そのまま最後の番号になる

配列にいくつ入っているかは 〜の要素数 と書きます。

整数型: len ← dataの要素数

出典:令和8年度 基本情報技術者試験 科目B 公開問題 問1

さきほどの data なら 4 です。そして番号が1から始まるので、次のことが言えます。

要素数 = 最後の要素番号

要素数が4なら、最後の箱は data[4]。要素数から1を引く必要はありません。

実際の出題でも、末尾を取り出すときは data[dataの要素数] のようにそのまま書かれます。0から数える言語では len - 1 が末尾なので、ここは意識して切り替えてください。

次の2行を実行したあと、x はいくつですか。

整数型の配列: data ← {6, 1, 8}
整数型: x ← data[dataの要素数]

[ ] の中に式が書かれることもあります。内側から順に片づければ、迷いません。1行ずつ動かして確かめます。

要素番号を計算して読む

当サイトオリジナルの例題


ループ開始前

配列

▲ いま読んでいる▲ いま書いた

いま計算していること

まだ計算していません

変数の状態

トレース表(進めると1行ずつ積み上がります)

要素番号が出てきたときの手順

  1. 要素数を数える。それが最後の要素番号
  2. [ ] の中に式があれば、先に中を計算する
  3. 出た番号が 1 以上・要素数 以下に収まっているかを確かめる
  4. 収まっていれば、その番号の箱の中身を読む

3番目を飛ばすと、存在しない箱を読んだことに気づけません。

次の配列に対して、存在しない箱を指しているのはどれですか。

整数型の配列: data ← {6, 1, 8}

つまずきポイントまとめ

まちがえ方 正しい理解
先頭を data[0] だと思う 先頭は data[1]。data[0] は無い
末尾を「要素数 - 1」で取る 要素数がそのまま最後の番号。data[dataの要素数] が末尾
{} を「空じゃない何か」だと思う 要素数0の配列。ここから足していく形が定番
要素どうしの入れ替えを2行で書く 先に上書きされて値が消える。避難用の箱がいる
[ ] と { } を混同する [ ] は何番目かを指す、{ } は中身をまとめて書く

次に読む

この記事で引用した資料

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

{5, 3, 8} を使った入れ替えの例題は当サイトのオリジナルです。

Copied title and URL