配列に要素を入れたり、消したりする回です。ここは書き方が2種類あって、混ざると読めなくなります。末尾に足すときだけ、問題文に決まった書き方が出てきます。
期間限定クーポンPR|Udemy の講座科目B オリジナル模試 3回分・60問42%OFF 1,500円第2部 定番処理の型 全26回A2-4入れる・消す一覧を開く
A1-1トレース表の書き方A1-2繰返しのトレースA1-3配列のトレースA2-1配列を全部見るA2-2最大・最小を見つけるA2-3探す(線形探索)A2-4入れる・消すA3-12次元配列の走査A3-22次元配列の集計A4-1文字列を1文字ずつA4-2文字列照合A5-1交換して並べるA5-2挿入ソートA6分割して並べるA7-12分探索A7-2ハッシュ表探索A8-1再帰とはA8-2再帰のトレースA9スタックとキューA10-1リストを読むA10-2リストの挿入と削除A11木構造A12木の巡回A13グラフA14AI・データを題材にしたプログラムA15コントロールブレーク処理
この回の内容を動画で見る
次のページで講義の目次と無料の講義を見られます。受講ボタンとクーポンコードもそこにあります。
この回の内容を動画で見る
解くための再現性が身につく講義29本小テスト86問模試3回分IT資格の森で見る
講義「探す・入れる・消す」(全8分55秒)は、IT資格の森(月額1,280円)の会員向けです。科目Bは、1行ずつ値を追うアニメの講義と、講義ごとの小テスト、本番と同じ形の模擬試験がそろっています。
プログラムを、上から読む
まず、行ごとの役割です。途中に割り込ませる書き方は、いつもこの3段構えになります。
上から読む
-
整数型の配列: a ← {3, 5, 8, 9} 整数型: ireru ← 7 整数型: ichi ← 2 整数型: i材料を並べる。入れる先の配列a、入れたい値ireru(7)、入れる位置ichi(2番目)、番号を入れておく箱iです。 -
aの末尾 に ireruの値 を追加する
まず、箱を1つ増やす。「〜の末尾に…を追加する」は、問題文によく出てくる書き方です。これでaは5個ぶんの長さになります。 -
for (i を aの要素数 から ichi + 1 まで 1 ずつ減らす) a[i] ← a[i - 1] endfor
うしろへずらす。1つ前の値をコピーして、入れたい場所を空けます。1 ずつ減らすなのでうしろから進みます。なぜこの向きなのかは、このあとの節で見ます。 -
a[ichi] ← ireru
空いた場所に入れる。2番目が空いたので、そこへ 7 を入れます。ここまででaは {3, 7, 5, 8, 9} です。
末尾に追加は、決まった書き方で出てくる
いちばんよく出てくるのがこれです。
整数型の配列: out ← {3, 5}
outの末尾 に 7 を追加する
out は 3, 5, 7 になります。実際の出題にも、この形がそのまま出てきます。outの末尾 に in[1]の値 を追加する のように使われます。
末尾に追加すると、うしろに1つ増える
整数型の配列: out ← {3, 5}
もとの並び
13
25
outの末尾 に 7 を追加する のあと
13
25
37
要素数も 2 → 3 に増える。場所を空ける手間は要らない
末尾だけは、「〜の末尾に…を追加する」と書けばうしろに足せる
末尾に足すときは、何も準備が要らない
場所を空ける必要はありません。要素数も自動で1つ増えます。
だから、答えを1つずつ貯めていくときによく使われます。空の配列を用意しておいて、条件に合ったものだけ末尾に足していく ── これが定番の形です。
途中に入れるときは、うしろから空ける
問題文には「〜の末尾に…を追加する」という書き方がよく出てきます。途中に入れる・消すという書き方は出てこないので、自分でずらします。
空け方に順番があります。うしろの要素から動かしてください。
途中に入れるときは、うしろからずらす
整数型の配列: a ← {3, 5, 8, 9} / [2] に 7 を入れたい
① aの末尾 に ireruの値 を追加する
13
25
38
49
57
[5] は場所を作るためだけ。この 7 は、すぐ上書きされる
② i = 5:a[5] ← a[4]
13
25
38
49
59
③ i = 4:a[4] ← a[3]
13
25
38
48
59
④ i = 3:a[3] ← a[2]
13
25
35
48
59
ここで [2] が空いた(もとの 5 は、もう [3] にコピーしてある)
⑤ a[ichi] ← ireru
13
27
35
48
59
矢印はいつも右向き。まだコピーしていない値を、先にコピーした値で上書きしない
右へ1つずつずらすので、最後の値の行き先が要ります。先に末尾へ1つ追加して伸ばしてから、うしろへずらします。
1行目の aの末尾 に ireruの値 を追加する で足しているのは、入れたい値の 7 です。ただしこの 7 は、すぐあとの a[5] ← a[4] で 9 に上書きされます。ここでやりたいのは箱を1つ増やすことだけなので、足す値は何でも構いません。7 は最後にあらためて a[ichi] へ入れ直します。
整数型の配列: a ← {3, 5, 8, 9}
整数型: ireru ← 7
整数型: ichi ← 2
整数型: i
aの末尾 に ireruの値 を追加する
for (i を aの要素数 から ichi + 1 まで 1 ずつ減らす)
a[i] ← a[i - 1]
endfor
a[ichi] ← ireru
aの全要素の値を要素番号の順に空白区切りで出力する
「割り込ませる」を1行ずつ動かす
当サイトオリジナルの例題
ループ開始前
配列
いま計算していること
変数の状態
出力
トレース表(進めると1行ずつ積み上がります)
出力は 3 7 5 8 9 です。for が ずつ減らす になっているところが要です。うしろの要素から順にコピーしています。
[2] の値を [3] へコピーした時点で、[3] にあった値が消えます。次に [3] を [4] へコピーすると、コピーされるのはさっき上書きした値です。
結果、同じ値が並びます。
前からコピーすると、まだコピーしていない値が上書きされる
for を「ichi + 1 から aの要素数 まで 1 ずつ増やす」に変えた場合
① i = 3:a[3] ← a[2]
13
25
35
49
57
もとの [3] にあった 8 が、ここで消えた
② i = 4:a[4] ← a[3]
13
25
35
45
57
コピーされるのは、さっき上書きした 5
③ i = 5:a[5] ← a[4]
13
25
35
45
55
④ a[ichi] ← ireru
13
27
35
45
55
8 と 9 が消えて、5 で埋まった
前からコピーすると、まだコピーしていない値が先に上書きされる
覚え方
入れるときは、うしろから。まだコピーしていない値を、先にコピーした値で上書きしないためです。
消すときは、前から詰める
消す書き方も出てきません。うしろの要素を前へ詰めます。
消すときは、前から詰める
整数型の配列: a ← {3, 5, 8, 9} / [2] の 5 を消したい
① もとの並び
13
25
38
49
[2] の 5 を消したい
② i = 2:a[2] ← a[3]
13
28
38
49
③ i = 3:a[3] ← a[4]
13
28
39
49
④ kazu ← aの要素数 - 1
13
28
39
49
最後の1つが余る。以降は先頭から kazu(=3)個だけを見る
矢印はいつも左向き。うしろの番号が1つずつ前へずれる
入れるときと向きが逆です。詰めるときは前から順にコピーします。こちらは、コピー先がすでに要らない値なので、上書きしても構いません。
整数型の配列: a ← {3, 5, 8, 9}
整数型: kesu ← 2
整数型: i, kazu
for (i を kesu から aの要素数 - 1 まで 1 ずつ増やす)
a[i] ← a[i + 1]
endfor
kazu ← aの要素数 - 1
a は 3, 8, 9, 9 になり、kazu は 3 です。最後の 9 は余りなので、以降は先頭から kazu 個だけを見ます(消した位置よりうしろの要素は、番号が1つずつ前へずれています)。
つまずきポイントまとめ
| まちがえ方 | 正しい読み方 |
|---|---|
| 途中に入れる書き方もあると思う | 問題文に出てくるのは末尾への追加だけ。途中は自分でずらす |
| 入れるときに前からコピーする | うしろから。前からだと同じ値で埋まる |
| 消すときにうしろからコピーする | 前から詰める。向きが逆 |
| 消したら要素数が減ると思う | 減らす書き方は出てこない。最後の1つが余る |
| 消したあとも同じ番号を指す | うしろは1つずつ前へずれる |
次に読む
| A3-1 | 2次元配列の走査 ─ 行と列で場所が決まる |
| A2-3 | 配列から探す ─ 線形探索と「見つからなかったとき」 |
| G4-2 | 配列の読み書き ─ 要素に入れる、取り出す |
| 目次 | 基本情報技術者試験 科目B 攻略ガイド |
この記事で引用した資料
- 情報処理技術者試験 試験要綱 Ver5.6(2026年7月6日)
- 基本情報技術者試験 シラバス Ver9.2(2026年1月8日)
- 基本情報技術者試験 科目B サンプル問題(2022年12月26日公開)
いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では、引用した箇所の文言を改変していません(省略や補いがある場合は、その場に明記しています)。
本文の例題は当サイトのオリジナルです。


