第8回 配列

プログラミング準備室

こんにちは!さんです。

高校で数学と情報を教えています!

「プログラミング準備室」では、共通テスト情報Ⅰで出題される、「プログラミング」について学べます。

今回は 配列」について解説していきます!

生徒
生徒

次は何を学ぶの?

さん
さん

次は 「配列」 について学んでいくよ。

生徒
生徒

配列?また新しい言葉が出てきたね…。どういう意味?

さん
さん

簡単に言うと 「データをまとめて管理できる変数」 のことだよ!

配列とは?

配列とは、「複数のデータをひとまとめにして管理するための変数」です。

普通の変数では 1つのデータしか入れられません が、配列を使うと、複数のデータを扱うことができます。

変数が、データを入れる段ボールのイメージだとすれば、配列は、横一列に並んだ段ボール箱のイメージです。

例えば…

普通の変数だと

ソースコード

(1) fruit_1 = “りんご”
(2) fruit_2 = “みかん”
(3) fruit_3 = “バナナ”

このように、1つ1つ変数を作らなければいけません。

配列を使うと

ソースコード

(1) Fruit = [“りんご”, “みかん”, “バナナ”]

このように、1つの変数の中にまとめてデータを入れることができます

生徒
生徒

おお!スッキリしてるね!

さん
さん

そうだね!配列を使うと「たくさんのデータをまとめて扱う」のが簡単になるんだよ。

配列の書き方

共通テスト用プログラム表記の例示では、次のように書かれています。

配列は次のように書きます。

配列の書き方

(配列名) = [ 値1, 値2, 値3, …]

さん
さん

配列は変数と区別するために、先頭を大文字にするんだ。

例えば、5人の情報のテストの点数 を記録する配列を作ると、次のようになります。

ソースコード

(1) Tensu = [85, 92, 78, 64, 90]

そして、この配列は次のように表示されます。

ソースコード

(1) Tensu = [85, 92, 78, 64, 90]
(2) 表示する(Tensu)

実行結果

[85,92,78,64,90]

生徒
生徒

1人だけの点数を表示するにはどうしたらいいの?

さん
さん

添字 という数字を使って、指定してあげるんだ。次で説明するね。

配列の要素を取り出す

配列の要素(配列の中に入っているデータ)を取り出すには、次のように書きます。

配列の要素の取り出し方

(配列名)[ 添字 ]

添字は、配列の要素を指定するための番号のことです。

例えば、配列に入れた2人目の点数を表示するには、次のように書きます。

ソースコード

(1) Tensu = [ 85, 92, 78, 64, 90]
(2) 表示する(Tensu[1])

実行結果

92

生徒
生徒

え!? なんで Tensu[1] が 92 なの? 1番目って85じゃないの?

さん
さん

実は、添字は0から始まる んだ。

添字のポイント

特に説明がない場合、配列の要素を指定する添字は、0から始まる

配列の添字は

添字01234
要素(値)8592786490

ですから、

  • Tensu[0] → 85
  • Tensu[1] → 92
  • Tensu[2] → 78
  • Tensu[3] → 64
  • Tensu[4] → 90

となります。

添字は基本は 0 から始まりますが、問題によって指定されることがあるので注意しましょう。

生徒
生徒

なるほど!0から数えるのか…慣れるまで大変そう。

さん
さん

最初は戸惑うけど、すぐ慣れるよ!次は、配列を繰り返し文と組み合わせて使う方法を学ぼう!

配列 × 繰り返し文

配列の要素を1つずつ取り出すときは、繰り返し文 を使うと便利です。

例えば、配列の全ての点数を表示する プログラムを作ると、

ソースコード

(1) Tensu = [85, 92, 78, 64, 90]
(2) i を 0 から 4 まで 1 ずつ増やしながら繰り返す:
(3) L 表示する( Tensu[i] )

実行結果

85
92
78
64
90

カウント変数 i が 0 から 4 まで変化するので、点数を1つずつ取り出すことができるようになります。

生徒
生徒

おお!1つずつ取り出せてる!

さん
さん

このように 繰り返し文を使うことで、配列のデータを順番に処理できる よ!
次は2次元配列について説明するね。

2次元配列とは?

配列は「横一列に並んだ段ボール箱」 のイメージでした。

それに対して、2次元配列は 「縦横に並んだ段ボール箱の棚」 みたいなイメージです。

普通の配列だと

ソースコード

(1) Fruit = [“りんご”, “みかん”, “バナナ”]
(2) Sweets = [“クッキー”, “ケーキ”, “マカロン”]

このように、1つ1つ配列を作らなければいけません。

2次元配列を使うと

ソースコード

(1) Food = [ [“りんご”, “みかん”, “バナナ”], [“クッキー”, “ケーキ”, “マカロン”] ]

このように、1つの2次元配列の中にまとめてデータを入れることができます

さん
さん

2次元配列は、“表” のようにデータを整理するのに便利なんだ。

0列目1列目2列目
0行目りんごみかんバナナ
1行目キャンディーケーキマカロン

2次元配列の書き方

2次元配列は次のように書きます。

配列の書き方

(2次元配列名) = [ [ 値1_1, 値1_2, 値1_3, …], [ 値2_1, 値2_2, 値2_3, …], … ]

例えば、5人の情報と数学のテストの点数 を記録する配列を作ると、次のようになります。

ソースコード

(1) Tensu = [ [ 85, 92, 78, 64, 90], [91, 60, 76, 58, 96] ]

そして、この2次元配列は次のように表示されます。

ソースコード

(1) Tensu = [ [ 85, 92, 78, 64, 90], [91, 60, 76, 58, 96] ]
(2) 表示する(Tensu)

実行結果

[[85,92,78,64,90],[91,60,76,58,96]]

生徒
生徒

2次元配列の場合は、どうやって1つだけの点数を表示するの?

さん
さん

2次元配列も 添字 を使って、指定してあげるんだ。次で説明するね。

配列の要素を取り出す

2次元配列の要素を取り出すには、次のように書きます。

配列の要素の取り出し方

(配列名)[ 行の添字, 列の添字 ]

2次元配列の添字は

添字0
(1人目)
1
(2人目)
2
(3人目)
3
(4人目)
4
(5人目)
0
(情報)
8592786490
1
(数学)
9160765896

行の添字列の添字 の2種類の添字があります。

例えば、数学のテストの4人目の点数 を表示するには、次のように書きます。

ソースコード

(1) Tensu = [ [ 85, 92, 78, 64, 90], [91, 60, 76, 58, 96] ]
(2) 表示する(Tensu[1, 3])

実行結果

58

生徒
生徒

添字は0から始まるのが基本 だったね!

さん
さん

その通り!よく覚えていたね!

要素を全て表すと、

  • Tensu[0, 0] → 85
  • Tensu[0, 1] → 92
  • Tensu[0, 2] → 78
  • Tensu[0, 3] → 64
  • Tensu[0, 4] → 90
  • Tensu[1, 0] → 91
  • Tensu[1, 1] → 60
  • Tensu[1, 2] → 76
  • Tensu[1, 3] → 58
  • Tensu[1, 4] → 96

となります。

生徒
生徒

データを “表” として扱えるのは便利そう!

さん
さん

そうだね。Excelみたいに整理ことができるんだ。

2次元配列 × 繰り返し文

配列の要素を1つずつ取り出すときは、繰り返し文 を使うと便利です。

を管理する繰り返し文列を管理する繰り返し文 の2つの繰り返し文を使います。

例えば、配列の全ての点数を表示する プログラムを作ると、

ソースコード

(1) Tensu = [ [ 85, 92, 78, 64, 90], [91, 60, 76, 58, 96] ]
(2) i を 0 から 1 まで 1 ずつ増やしながら繰り返す:
(3) I  j を 0 から 4 まで 1 ずつ増やしながら繰り返す:
(4) L L 表示する( Tensu[i, j] )

実行結果

85
92
78
64
90
91
60
76
58
96

行を管理する繰り返し文 の中に 列を管理する繰り返し文 が入っている 2重ループ になっています。

まず、行を管理する 変数 i0 のときに、列を管理する 変数 j0 ~ 4 までループし、

次に、行を管理する 変数 i1 になり、また、列を管理する 変数 j0 ~ 4 までループします。

生徒
生徒

2重ループ!?複雑だけど、変数 i変数 j を確認しながら1行ずつ考えてみるね…。

さん
さん

初めは、難しいけど、次の練習問題で、2次元配列と2重ループをマスターしよう!

練習問題

練習問題

次のプログラムを実行したときに、表示されるものを答えなさい。

ソースコード

(1) Tensu = [ [ 85, 92, 78, 64, 90], [91, 60, 76, 58, 96] ]
(2) i を 0 から 1 まで 1 ずつ増やしながら繰り返す:
(3) I  j を 0 から 4 まで 1 ずつ増やしながら繰り返す:
(4) I  I  もし j % 2 == 1ならば:
(5) L L L 表示する( Tensu[i, j] )

生徒
生徒

条件分岐文も加わってしまった…。

さん
さん

諦めないで!!1つずつ考えればできるよ!大丈夫!

92
64
60
58

まとめ

今回は、「配列」について解説しました。

  • 配列とは、複数のデータをまとめて管理できる変数のことで、横一列に並んだ段ボール箱のようなイメージ。
  • 2次元配列とは、縦横に並んだ段ボール箱のイメージで、Excelのようにデータを表で管理できる。
  • 配列の要素は、添字によって指定され、基本的に 0 から始まる。
  • 繰り返し文を使うことで、配列のデータを順に処理できる。
  • 2次元配列の要素を順番に扱うには、2重の繰り返し文を使う
生徒
生徒

条件分岐文、繰り返し文、配列、それぞれ使いこなせるようになりたいな。

さん
さん

その3つを使いこなるようになったら、共通テストで戦えるようになるよ!次回は「関数」について学んでいこう!

次に進む → 第9回 関数

コメント

タイトルとURLをコピーしました