これでスッキリ!プログラミングの配列とは?超わかりやすく解説

プログラミングの勉強をしていると、あるクラスの身長や体重の平均値を求めなさい、という問題が出題されます。

この問題でデータを扱う際に、変数ではなく【配列】を使うと便利であることを習います。

 

しかし、多くの書籍や学習動画では、【配列】を使いながら慣れるといった学習の仕方が目立ちます。

そのため、

 

・配列要素数は全体の数だっけ?
・配列要素をデータとして管理する方法があいまいだな・・・

こういう状態で【配列】の課題に取り組んでも、データを【配列】としてうまく表現することができません。

 

人によっては、

 

配列は変数を一直線上に並べたものだよ

変数をいくつも扱うのが大変だから配列を使うよ

 

というように根本的な理解をしている人もいます。

確かに、習うより慣れよのまま配列を扱うこともできます。

 

ここでは、データを【配列】として表現する方法を学び、使い方・規則をしっかりと覚えていきましょう。

 

まずはじめに、配列の使い方・規則を確認します。

その次に、配列はどのようなときに利用するのかを見ていきます。

 

最後に、配列の先頭要素の添え字は、なぜ0なのかを紹介します。

この記事を読めば、配列のデータを扱う上での基礎理解が定着するようになります。

 

 

配列の使い方・規則

大量の値を同じデータ型で扱うのが【配列】です。

 

大量のデータとは、

    • 全校生徒の試験結果(点数)
    • ある年度の商品の月別の売上金額
    • 会員登録した全員の名前
こういったものです。

 

配列の型について

①配列で扱うデータは必ず同種の値でなければならない。

 

同種の値とは

    • 全校生徒の氏名 → 名前という文字列型
    • 全校生徒の試験結果 → 点数という値の整数型

上の2つを混同して同列で扱うことはできません。

 

配列は同じデータを一直線上にスキマなく並べたものです。

配列自体のデータ型は配列を作成するときに指定します。

 

配列名について

②配列名は一意でなければならない

③数字のみ、もしくは数字から始まる配列名は使用できない

 

配列も変数と同様に、目的の配列を特定できるようにする必要があります。

それぞれの配列には固有の名前として配列名を使用します。

 

 

配列における個々の要素を表現するには

④配列の1つひとつの箱のことを、配列要素といいます。

⑤配列を構成している箱の数を配列要素数といいます。

⑥配列名+[要素番号](”[ ]”はブラケット)で配列を構成している1つの要素を表します。

 

配列を構成している配列要素には、先頭から連番が付いています。

それを要素番号と呼びます。

  • どの配列要素にデータを入れるのか?
  • どの配列要素のデータを参照するのか?

 

つまり配列名と要素番号を組み合わせることで、目的の配列要素を特定できる仕組みです。

要素番号のことを “配列の添え字” と呼びます。

 

 

配列要素を指定できるということは、個々の配列要素を管理できるということだね

配列はロッカーのようなもの

配列は、大量の荷物を分別して入れておけるロッカーのようなものです。

配列は変数を1列につなげたものと考えることができます。

 

ロッカーには1つひとつに区別する番号が割り振られています。

その番号によって目的のロッカーを特定することができます。

 

つまり、配列にとっては配列要素番号(連番)によって配列要素を特定することと同じということだね

 

 

たとえば、特定の要素番号にデータを代入する場合

データ123を要素番号1に代入すると次のようになります。

ARRAY[1]=123

 

 

コンピュータだからこそできる!値をコピーして代入するとは?

⑦ある番号の配列要素に新しく値を入れると、それまでに入っていた古い値はなくなります。

 

⑧もともとロッカー番号5に入っていた荷物Bをロッカー番号2に入れる場合は、

ロッカー番号2に入れる荷物Bはロッカー番号5に入っていた荷物Bをコピーしたものになります。

 

 

ロッカー番号2に配列要素が代入されても、ロッカー番号5には荷物Bが残った状態であることも同時に覚えておこう!

そうだね、現実世界では手品みたいに思えるけれど、コンピュータならコピーが簡単にできるよ

配列はどのようなときに利用するの?

配列は、関連する大量のデータを効率よく格納したいときに威力を発揮します。

 

たとえばあなたは車を輸出する会社に勤めているとします。

車の車種をデータで管理するとしたら、どうしますか?

 

車の全車種の変数を用意するのは現実的ではありません。

そんなとき、関連する大量のデータを扱うような場合に配列を利用するのです。

 

変数ではなく配列なのね。変数を大量に用意するのは手間がかかり過ぎるのか・・・

配列名を「メーカ」、「車種」、「色」、「排気量」にすれば管理が簡単になりそうだね

大学では個人に学籍番号が付与されるでしょ?
番号があれば学生の成績を配列として管理できるね

なぜ配列の先頭要素の添え字は0なの?

 

配列の先頭要素は、配列名[]であったり、別のプログラミング言語では、配列名[]であったりします。

5つの配列要素が用意されている場合には次のようになります。

    • 配列の先頭要素の要素番号を0(BASE0)とする場合

ARRAY[0]、ARRAY[1]、ARRAY[2]、ARRAY[3]、ARRAY[4]

 

    • 配列の先頭要素の要素番号を1(BASE1)とする場合

ARRAY[1]、ARRAY[2]、ARRAY[3]、ARRAY[4]、ARRAY[5]

 

なぜ2つのケースがあるのでしょうか?

 

コンピュータが開発された初期のころに、配列の先頭の要素番号を1としていました。

Fortran、Pascal、(初期の)Basicなどのプログラム言語が該当します。

 

その後、配列の先頭の要素番号を0として扱うように仕様が変わりました。

現在では0として記述することが一般的となっています。

C、JavaVisualBasicなどのプログラム言語が該当します。

 

 

まとめ

 

配列は、同じデータ型として大量の値を扱うときに便利なデータ表現の1つです。

しっかり、使い方・規則を身に付けて情報処理が正しく行えるようにしておきましょう。

おすすめの記事