擬似言語の配列の作り方と読み書き|← の左右で意味が変わる【基本情報技術者試験 科目B】

基本情報技術者試験

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

前回は、配列の箱と要素番号を見ました。今回はその箱を作り、読み、書き換えるところです。ここでいちばん多い取り違えは、data[3] が「読む」のか「書く」のかを逆に取ることです。見分けるのは← のどちら側にあるかだけです。

配列の作り方 ── 出てくるのは5つ

実際の出題に出てくる形を、1つずつ見ます。どれも「宣言」+「初めに入れておくもの」という組み立てです。

1つ目は、中身を並べて書く形。いちばん多く出てきます。

整数型の配列: data ← {1, 2, 3, 4, 5}

{ } の中に並べた数が、そのまま data[1] 〜 data[5] になります。要素数は5です。

2つ目は、空っぽで作る形。

整数型の配列: out ← {}

{ } の中が空なので、要素数0の配列ができます。箱が1つもない状態です。ここに後から足していくという使い方をします(この回の最後で扱います)。

3つ目は、個数だけ決めて、中身を決めない形。

整数型の配列: work ← {(n1 + n2)個の 未定義の値}

「◯個の △」という書き方で、箱の数と、初めに入れる値を指定します。ここでは n1 + n2 個ぶんの箱を用意して、中身は未定義のまま置いています。「あとで全部埋めるので、場所だけ先に取っておく」という形です。

4つ目は、個数を決めて、同じ値で埋める形。

整数型の配列: arrayK ← {otherItemsの要素数個の0}

3つ目と同じ書き方で、中身を 0 にしています。箱の数を別の配列の要素数に合わせるのもよく出る形です。数を数える処理では、この「全部0で始める」がほぼ決まり文句になります。

5つ目は、宣言だけして、何も入れない形。

整数型の配列: data

← がありません。名前と型だけ決めて、中身はまだ無い状態です。変数の宣言と同じで、あとの行で入れます。

書き方 できるもの
整数型の配列: data ← {1, 2, 3, 4, 5} 中身を並べて指定する。要素数5
整数型の配列: out ← {} 要素数0の配列。空の状態から始める
整数型の配列: work ← {(n1 + n2)個の 未定義の値} 個数だけ決めて、中身は未定義
整数型の配列: arrayK ← {otherItemsの要素数個の0} 個数だけ決めて、全部0で埋める
整数型の配列: data 箱の宣言だけ。中身はまだ無い

出典:基本情報技術者試験 科目B サンプル問題 問3/令和6年度 公開問題 問4・問5/令和8年度 公開問題 問1

読むときに必要なのは、要素数だけ

5つの形をどれも暗記する必要はありません。問題を読むときに要るのは「この配列は、いま何個の箱を持っているか」だけです。

{1, 2, 3} なら3個、{} なら0個、{5個の 0} なら5個 ── そこだけ拾えば、あとの行が追えます。

次の宣言のあと、a はどうなっていますか。

整数型の配列: a ← {3個の0}

読み書き ── ← の左右で決まる

← の左右で、読むか書くかが決まる

整数型の配列: data ← {1, 2, 3, 4, 5}

top ← data[3] data が右にある = 読むだけ

11

22

33▲

44

55

top3

data は変わらない。3 の写しが top に入る

data[3] ← top data が左にある = 書き換わる

11

22

39

44

55

top9

もとの 3 は消える。top のほうは変わらない

同じ data[3] でも、← のどちら側にあるかで意味が変わる

data[3] という書き方は、読むときにも書くときにも使います。どちら側にあるかで意味が変わります。

書き方 data がある側 data はどうなるか
top ← data[len] 矢印の右 変わらない(中身を見ただけ)
data[1] ← top 矢印の左 data[1] が書き換わる

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

配列の要素も、ただの箱

要素に代入すると、そこに入っていた値は消えます。G2-3 でやった a ← b とまったく同じです。箱に番号が付いただけで、性質は変わりません。

動かす前に、ひとつ予想してみましょう

data[1] と data[3] を入れ替えようとして、次のように書きました。実行したあと、data の中身はどうなりますか。

整数型の配列: data ← {5, 3, 8}
data[1] ← data[3]
data[3] ← data[1]

正しく入れ替えるには、G2と同じく避難用の箱がいります。動かして確かめます。▲が指しているセルを見てください。

トレースシミュレータ 配列の2つの要素を入れ替える

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


ループ開始前

配列

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

いま計算していること

まだ計算していません

変数の状態

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

末尾への追加 ── 要素数が1増える

配列は、あとから要素を足せます。実際の出題では日本語の1文で書かれます。

出典:基本情報技術者試験 科目B サンプル問題 問3(プログラムの一部)

outの末尾 に in[1]の値 を追加する

これで out の要素数が1増えます。空(要素数0)の配列に1つ足せば要素数1になり、その値は out[1] で読めます。

out(追加する前)= 要素数 0

↓ outの末尾 に in[1]の値 を追加する

out(追加したあと)= 要素数 1

13

読まれた側(in)は変わりません。値がコピーされて out に足されるだけです。

次の3行を実行したあと、out[1] と outの要素数 はそれぞれどうなりますか。

整数型の配列: out ← {}
outの末尾 に 5 を追加する
outの末尾 に 9 を追加する

つまずきポイントまとめ

まちがえ方 正しい理解
{3個の0} の 3 を中身だと読む 3 は箱の数、0 が中身。「◯個の △」
data[3] がいつも「読む」だと思う ← の左にあれば書き換える側
2行で入れ替えられると思う 先に上書きすると元の値が消える。避難用の箱がいる
末尾に追加しても要素数が同じだと思う 1増える。追加した値が新しい末尾になる
追加すると読まれた側も変わると思う 読まれた側は変わらない。値がコピーされるだけ

次に読む

この記事で引用した資料

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

Copied title and URL