08_データ構造_配列

はじめに

この資料では、「配列」について学びます。配列とは、同じ種類のデータをまとめて管理するためのデータ構造です。複数の変数を一つずつ用意する代わりに、配列を使うことで整理された形でデータを扱うことができます。


配列とは何か

配列は、「同じ型のデータを複数まとめて管理する仕組み」です。たとえば、5人の点数を管理したいときに、次のように書く代わりに:

整数型: score1, score2, score3, score4, score5

配列を使うことで:

整数型の配列: scores

とまとめて宣言できます。 配列を宣言すると、メモリ上の連続した領域を確保します。


配列の初期化(まとめて代入)

配列は、複数の値をまとめて初期化することもできます。

整数型の配列: value
value ← {10, 20, 30, 40}

このように、カンマで区切られた値が、1番目から順番に代入されます

value[1] は 10
value[2] は 20
value[3] は 30
value[4] は 40

配列の性質と要素番号(添字)

配列では、それぞれのデータを「要素」と呼び、**要素番号(添字)**を使ってアクセスします。 擬似言語では、配列の要素番号が「1から始まる」か「0から始まる」かは問題ごとに明示されます。必ず問題文の説明に従ってください。 問題としては通常「1から始まる」場合が多い。

実際の多くのプログラム言語では(CやPythonなど)では0から始まります。

例(1から始まる):

整数型の配列: scores
scores[1] ← 85
scores[2] ← 90

配列と繰り返しの関係

配列の処理には繰り返しが不可欠です。たとえば、すべての要素を1つずつ読み取るには、次のようにカウンター変数を添字として利用します:

整数型の配列: scores
整数型: i, total ← 0

for ( i を 1 から 5 まで 1 ずつ増やす )
    total ← total + scores[i]
endfor

このように、繰り返し構文と配列の相性は非常に良いです。


要素へのアクセス(代入と参照)

配列の要素には、代入と参照を使ってアクセスします。

このように、特定の位置(添字)を指定することで、その位置にあるデータに読み書きできます。


配列の範囲外アクセスについて

配列には要素数の上限があります。存在しない要素番号を指定すると、実際のプログラムではエラーになります。擬似言語ではエラーにならないように書かれていますが、現実のプログラミングでは注意が必要です。

例(範囲外アクセスの例):

整数型の配列: data

data[1] ← 10
x ← data[2]  // この行は存在しない要素を参照 → 実際の言語ではエラー