タグ

第7回 同じ型のデータをまとめる配列の実装

はじめに

前回は、同じ処理を繰り返し実行する反復処理について学びました。

しかし、プログラムでは同じ種類のデータを複数扱いたい場面がよくあります。

例えば、5人分のテストの点数を管理したい場合を考えてみましょう。

これまで学習した内容だけで書くと、次のようになります。

int score1 = 80; int score2 = 75; int score3 = 90; int score4 = 68; int score5 = 95;

このように変数を増やしていけば管理できますが、人数が30人、100人と増えていくと、変数を用意するだけでも大変になります。

このようなときに使用するのが配列です。

今回の到達目標

  • 配列とは何かを説明できる。
  • 配列を宣言できる。
  • 配列へ値を保存できる。
  • 添字(インデックス)を使用して要素を取り出せる。
  • 配列と反復処理を組み合わせて使用できる。

配列とは

配列とは、同じ型のデータをまとめて管理するための仕組みです。

例えば、5人分のテストの点数を管理する場合、

変数では

score1 score2 score3 score4 score5

のように複数の変数が必要でした。

一方、配列では

score

という1つの名前で複数のデータを管理できます。

変数と配列の違いを図で表すと、次のようになります。

変数

age ┌────┐ │ 20 │ └────┘

配列

score ┌────┬────┬────┬────┬────┐ │ 80 │ 75 │ 90 │ 68 │ 95 │ └────┴────┴────┴────┴────┘

このように、配列は同じ型のデータをまとめて扱うことができます。

配列を宣言する

配列は次のように宣言します。

int score[5];

これは、

  • int型のデータを
  • 5個保存できる配列

を意味しています。

配列の中に保存される1つ1つのデータを要素といいます。

添字(インデックス)

配列の要素を利用するには、それぞれの要素を番号で指定します。

この番号を**添字(インデックス)**といいます。

配列の添字は0から始まることに注意してください。

score ┌────┬────┬────┬────┬────┐ │    │    │    │    │    │ └────┴────┴────┴────┴────┘   0    1    2    3    4

5個の要素を持つ配列でも、添字は

0 ~ 4

となります。

配列へ値を保存する

配列へ値を保存するには、添字を指定します。

int score[5]; score[0] = 80; score[1] = 75; score[2] = 90; score[3] = 68; score[4] = 95;

これで、それぞれの要素へ値が保存されました。

配列の値を表示する

配列の要素は、添字を指定して取り出すことができます。

#include <iostream> int main() {    int score[5];    score[0] = 80;    score[1] = 75;    score[2] = 90;    score[3] = 68;    score[4] = 95;    std::cout << score[0] << std::endl;    std::cout << score[1] << std::endl; }

実行結果

80 75

このように、添字を指定することで必要な要素だけを取り出せます。

配列を初期化する

配列は宣言と同時に値を設定することもできます。

int score[5] = {80, 75, 90, 68, 95};

このように書くと、要素へ順番に値が保存されます。

配列と反復処理

配列は反復処理と組み合わせることで、本来の力を発揮します。

例えば、配列のすべての値を表示するプログラムは次のようになります。

#include <iostream> int main() {    int score[5] = {80, 75, 90, 68, 95};    for (int i = 0; i < 5; i++)    {        std::cout << score[i] << std::endl;    } }

実行結果

80 75 90 68 95

iの値が

0 → 1 → 2 → 3 → 4

と変化するため、

score[0] score[1] score[2] score[3] score[4]

を順番に取り出して表示しています。

配列と反復処理は非常によく一緒に使用されます。

配列の範囲外にはアクセスできない

配列には、決められた数だけ要素があります。

例えば、

int score[5];

では、使用できる添字は

0 ~ 4

です。

次のようなコードは、存在しない要素へアクセスしようとしているため正しくありません。

score[5]; score[100];

このようなプログラムは、予期しない動作やエラーの原因になります。

配列を使用するときは、必ず範囲内の添字を指定するようにしましょう。

まとめ

今回は、同じ型のデータをまとめて管理するための配列について学びました。

  • 配列は、同じ型のデータをまとめて管理する仕組みです。
  • 配列は型 配列名[要素数]の形式で宣言します。
  • 配列の要素は添字(インデックス)を使用してアクセスします。
  • 添字は0から始まることに注意しましょう。
  • 配列は反復処理と組み合わせることで、多くのデータを効率よく扱えます。
  • 配列の範囲外へアクセスすると、正しく動作しない原因になります。

次回は、文字の集まりを扱うための文字列について学びます。