配列と関数|添字の数え方・2次元配列・度数を数える型と関数の読み方

公開 2026年11月8日

たくさんのデータをまとめて扱うのが配列、よく使う処理をひとまとめにしたのが関数です。共通テストの第3問では、配列と関数を組み合わせたプログラムが毎年出題されています。特に添字の数え方は、問題ごとに条件を確認する必要がある重要なポイントです。

配列とは

配列は、複数の値を一つの名前でまとめ、番号で区別して扱う仕組みです。この番号を添字(インデックス)といいます。共通テスト用プログラム表記では、配列の名前は先頭を大文字にします。

Tokuten = [72, 85, 64, 90]
添字 0 1 2 3
値 72 85 64 90

Tokuten[1] は 85、Tokuten[3] は 90 です。

添字は0から?1から?

共通テスト用プログラム表記では、特に説明がなければ添字は0から始まります。ところが、2025年・2026年の本試験 第3問では、どちらも問題文に「配列の添字は1から始まる」と明記されていました。来訪者の1人目を添字1にするなど、人の数え方と合わせた方が読みやすいからです。

問題文の条件 4つの要素の添字 最後の要素
0から始まる(標準) 0, 1, 2, 3 Data[要素数(Data) − 1]
1から始まる 1, 2, 3, 4 Data[要素数(Data)]

問題文の添字の条件を、プログラムを読む前に必ず確認する習慣をつけましょう。

要素数

関数「要素数」は、配列の要素の個数を返します。要素数(Tokuten) は 4 です。添字が0から始まるとき、最後の要素の添字は「要素数 − 1」になる点に注意しましょう。

2次元配列

縦と横の2つの添字で要素を指定する配列を2次元配列といいます。表のデータを扱うのに使います。

Seki = [[3, 8, 5],
        [7, 2, 6]]
列0 列1 列2
行0 3 8 5
行1 7 2 6

Seki[1, 2] は「行1・列2」で 6 です。すべての要素を調べるには、行と列の二重ループを使います。

配列を使った典型的な処理

最小値の位置(添字)を探す

Akibi = [5, 3, 4]
tantou = 0
i を 1 から 2 まで 1 ずつ増やしながら繰り返す:
| もし Akibi[i] < Akibi[tantou] ならば:
⎿ ⎿ tantou = i
i Akibi[i] Akibi[tantou] 比較 tantou
(開始前) — — — 0
1 3 5 3 < 5 1
2 4 3 4 < 3 ではない 1

最小値(3)の添字1が求まります。値ではなく位置を覚えておくと、「何番目の人か」が分かります。

< と <= の違い: 最小値が複数あるとき、< なら最初に見つかった位置、<= なら最後に見つかった位置が残ります。2025年の本試験 第3問 では、空き日が同じ部員がいるときに、部員番号の小さい方を選ぶため < が使われていました。

度数を数える(配列をカウンタとして使う)

テストの得点(0〜10点)ごとの人数を数えるには、得点を添字にした配列を使います。

Tokuten = [3, 7, 3, 10, 7, 3]
Kazu = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]   # 添字0〜10
i を 0 から 要素数(Tokuten) - 1 まで 1 ずつ増やしながら繰り返す:
⎿ Kazu[Tokuten[i]] = Kazu[Tokuten[i]] + 1

実行後、Kazu[3] は 3、Kazu[7] は 2、Kazu[10] は 1 になります。Kazu[Tokuten[i]] のように、配列の値を別の配列の添字に使う書き方は、慣れるまで読みにくいので、内側から順に値を置き換えて読みましょう。

前の要素の値を使う

Shuryou[i - 1] のように、1つ前の要素を参照する書き方もよく出ます。2026年の本試験 第3問 では、i 番目の来訪者の開始時刻を 最大値(Shuryou[i - 1], Touchaku[i])(直前の人の終了時刻と、本人の到着時刻の大きい方)で求めました。最初の要素には「1つ前」がないので、繰り返しの前に別に設定しておく(Shuryou[1] = taiken)のが定番です。

関数

**関数**は、値(引数)を受け取って処理を行い、結果(戻り値)を返すものです。

kazu = 要素数(Data)        # Data が引数、要素の個数が戻り値
x = 最大値(3, 8)           # 3 と 8 が引数、8 が戻り値
表示する("合計は", goukei)  # 値を返さず、表示だけする関数

【関数の説明】を読む

共通テストでは、使う関数が問題文の【関数の説明】で示されます。

関数の中身がどう作られているかを知らなくても、説明どおりに使えば解けます。使用例で、引数が同じ値のときの戻り値など、境界の場合がどう扱われるかを確認しておきましょう。

共通テストでの出題

よくある間違い

まとめ

確認問題

問題を準備しています…

この分野が出た過去問

関連する用語