縦横に並んだ表を扱う回です。Excel の表とまったく同じで、行と列でマスが決まります。新しい考え方は出てきません。くり返しが2重になるだけです。
第2部 定番処理の型 全26回
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ファイル処理
まず、通しで見る
2分ほどの動画です(音声つき)。2重のくり返しで、どちらが先に動くのかが分かります。ここを取り違えると、出てくる順がまるで変わります。同じ表なのに答えが違う、という形で試験に出ます。
動画で追いかけるのは、このプログラムです。
整数型の二次元配列: hyou ← {{10, 20, 30}, {40, 50, 60}}
整数型: r, c
for (r を 1 から hyouの行数 まで 1 ずつ増やす)
for (c を 1 から hyouの列数 まで 1 ずつ増やす)
hyou[r, c]の値 を出力する
endfor
endfor
出力は 10 20 30 40 50 60 になります。
2次元配列の走査(2分18秒・音声つき)
再生できないときは、この下の図と説明で同じ内容を追えます。
ここから、同じ内容を1つずつ確かめていきます。
行と列で、1つのマスが決まる
記述形式に、はっきり書かれています ── 「二次元配列の要素番号は,行番号,列番号の順に “,” で区切って」。
行と列で、1つのマスが決まる
整数型の二次元配列: hyou ← {{10, 20, 30}, {40, 50, 60}}
hyou[1, 2] は「1行目の2列目」
| 1 | 2 | 3 | |
|---|---|---|---|
| 1 | 10 |
20 |
30 |
| 2 | 40 |
50 |
60 |
行が先、列があと。左と上の数字が、そのまま要素番号
記述形式にも「行番号,列番号の順」と書かれている
順番を取り違えない
hyou[1, 2] は 1行目の2列目。行が先、列があとです。
迷ったら表を書いてしまうのがいちばん確実です。A1-3 のとおり、2次元配列はそのまま表の形で書けます。
くり返しは2重になる
全部のマスを見るには、行のループの中に、列のループを入れます。
整数型の二次元配列: hyou ← {{10, 20, 30}, {40, 50, 60}}
整数型: r, c
for (r を 1 から hyouの行数 まで 1 ずつ増やす)
for (c を 1 から hyouの列数 まで 1 ずつ増やす)
hyou[r, c]の値 を出力する
endfor
endfor
2次元配列の走査を1行ずつ動かす
当サイトオリジナルの例題
ループ開始前
配列
いま計算していること
変数の状態
出力
トレース表(進めると1行ずつ積み上がります)
出力は 10, 20, 30, 40, 50, 60 の順です。1行目を左から右へ、そのあと2行目を左から右へ並んでいます。
内側のループは、外側が1周するあいだに、まるごと1回まわります。だから 2行3列 なら、内側は合計6回実行されます。
外側のループが、読む向きを決める
ここが、この回でいちばん問われるところです。
外側のループが、読む向きを決める
同じ表でも、外側と内側を入れ替えると通る順が変わる
外が行なら、横に読む
| 1 | 2 | 3 | |
|---|---|---|---|
| 1 | 10 |
20 |
30 |
| 2 | 40 |
50 |
60 |
出力は 10 20 30 40 50 60。1行目を左から右へ読み終えてから、2行目へ
外が列なら、縦に読む
| 1 | 2 | 3 | |
|---|---|---|---|
| 1 | 10 |
20 |
30 |
| 2 | 40 |
50 |
60 |
出力は 10 40 20 50 30 60。1列目を上から下へ読んでから、2列目へ
どちらでも6マス全部を1回ずつ通る。変わるのは順番だけ
外側が行なら、横に読みます。1行目を左から右へ読み終えてから、2行目に移ります。
外側と内側を入れ替えると、縦に読みます。1列目を上から下へ読んでから、2列目に移ります。
どちらでも6マス全部を1回ずつ通ります。違うのは通る順番だけです。
だから「合計を出す」なら答えは同じ。「順に出力する」なら答えが変わります。問われているのがどちらかを見てください。
行数と列数の書き方
行数と列数の書き方
実際の出題では 整数型: row ← dataの行数 のように、先に変数へ入れる形もよく出る
hyouの行数 は縦、hyouの列数 は横
| 1 | 2 | 3 | |
|---|---|---|---|
| 1 | 10 |
20 |
30 |
| 2 | 40 |
50 |
60 |
この表なら 行数 は 2、列数 は 3
取り違えると、外側と内側の上限が入れ替わる
実際の出題では 整数型: row ← dataの行数 のように、先に変数へ入れてから使う形もよく出ます。
空の2次元配列は {row行col列の 未定義の値} のように書かれます。「何行何列を、何で埋めるか」という読み方です。
つまずきポイントまとめ
| まちがえ方 | 正しい読み方 |
|---|---|
[2, 1] を2列1行と読む |
行が先、列があと |
| 要素番号を0から数える | 行も列も1から |
| 内側のループが1回しか回らないと思う | 外側が1周するあいだにまるごと1回 |
| 入れ替えても同じだと思う | 通る順番が変わる。出力の順は変わる |
| 行数と列数を取り違える | hyouの行数 は縦、hyouの列数 は横 |
次に読む
| A3-2 | 2次元配列の集計 ─ 0を入れる場所で決まる |
| A2-1 | 配列を全部見る ─ 番号を1つずつ変えて読む |
| G9-1 | 2次元配列 ─ 行と列の書き方 |
| G9-2 | 2重ループ ─ 内側と外側の回り方 |
| 目次 | 基本情報技術者試験 科目B 攻略ガイド |
この記事で引用した資料
- 擬似言語の記述形式 科目Bの公開問題・サンプル問題の各冊子に掲載。冊子上の名称は年度により「基本情報技術者試験用」と「基本情報技術者試験,応用情報技術者試験用」があるが、本文は同一
- 情報処理技術者試験 試験要綱 Ver5.6(2026年7月6日)
- 基本情報技術者試験 シラバス Ver9.2(2026年1月8日)
いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。
本文の例題は当サイトのオリジナルです。
