# 配列変数

配列変数とは、変数に番号をつけたもので、変数を数字で指定できます。
配列変数を使えば、１００以上の変数を一元的に管理出来たりして、便利です。
また、配列変数に、数値が入っているときには、最大値や、平均値が、簡単に求められます。

配列変数とは？

> | ’配列変数を使う ロッカー＃０＝「ホウキ」 ロッカー＃１＝「ギター」 ロッカー＃２＝「２４」 ロッカー＃３＝「♂」

> 便利な、配列変数とは、何か？
> それは、上図のような、番号のついた荷物整理箱「ロッカー」であると言えます。
> 今まで、変数１つには、１つの値しかしまっておくことが出来なかったわけですが、配列変数を使うと、１つ以上の値を好きな番号にしまっておくことが出来るのです。

> ちょっと、たとえ話をしてみましょう！ もし、タンスに、引出しが１つしかなかったら、どうでしょうか？ 夏服も、冬服も、パンツも寝巻きも、全部、同じ１つの引き出しに入れることしか出来なかったら・・・ 引出しが、３つ、４つ、ついているからこそ、服をしまうのに、タンスは便利なんですよね。 変数においても似たようなことが言えるわけで・・・まぁ、タンスのように、いろんなものを、１つの引き出しにまとめて、しまうことは出来ないんですが・・・変数を番号で区切って利用できるのは、便利です。

どうして配列変数を使うの？

> 上の説明で、配列変数の概要は分かって頂けたかと思いますが、実際、プログラムをするときに、配列変数って、一体何に使うのでしょう？
> それでは、配列変数を使わないで以下のプログラムを作ってみてください。これは、最近、私の元へメールで寄せられたものです。

> ひまわりの作者様へ 拝啓。私は、小学校で、「先生」と、呼ばれる職業に従事しています。 近頃は、少子化と世間で騒がれていますが、私の担当しているクラスの生徒数は、４０人もいます。 ・・・世間話が、ずっと続くので省略・・・ さて、前置きが長くなりましたが、ひまわりで、生徒のテストの点を管理するプログラムを作ろうと思ってます。 例えば、先月の漢字テストで、以下のような結果が出ました。
> 名前 | 点数
> あだちたつや | ８０
> いとうてつ | ４０
> うめもとたろう | ７７
> かとうじろう | ４０
> きしかわただし | ８２
> これを、集計したり、点数順に並べ替えたりするプログラムはどうやって作れば良いですか？

> さて、今まで習ったことだけで作るとしたら・・・

> ＊平均点を出すだけのプログラム `あだちたつや=80{点} いとうてつ=40 うめもとたろう=77 かとうじろう=40 きしかわただし=82 合計点=(あだちたつや+いとうてつ+うめもとたろう+かとうじろう+きしかわただし) 平均点=合計点÷5 「平均点は、｛平均点｝点です。」と、表示。`

> ５人だけの平均点を出すだけでも、これだけ大変です。
> この先生のクラスは、４０人ですから・・・あぁぁ、考えただけでも・・・こんなやり方では作りたくないですね。
> では、配列変数を使って作ってみましょう。
> （配列変数の詳しい使い方はこのあと説明しますのでとりあえず答えだけ。）

> `漢字テスト#0=80 漢字テスト#1=40 漢字テスト#2=77 漢字テスト#3=40 漢字テスト#4=82 漢字テストの,配列平均値。 「平均点は、｛それ｝点です。」と、表示。`

> どうでしょうか、なんとも、すっきりしています！！

配列変数を使ってみる

> 実際に、配列変数を触ってみましょう。
> まぁ、配列変数なんて、硬い感じの名前が付けられていますが、使い方は簡単です。
> 変数を、冒頭の図のように、ロッカーに例えてみるなら、

> ロッカー＃ロッカー番号

> の、ように、変数の名前の後ろに、＃要素番号と、つけるだけです。
> 簡単な例です。

> `ロッカー＃０＝「ほうき」 ロッカー＃１＝「ぞうきん」 ロッカー＃２＝「ちりとり」 ロッカー＃３＝「ティッシュ」 ロッカー＃４＝「Hな本」 （ロッカー＃２）と、言う。`

> （→もうお気づきだと思いますが、ひまわりの配列変数は、０から、始まります。）
> 次に、配列変数を使って、おみくじを作ってみましょう。

> `｛配列変数を用いたおみくじ｝ ＊配列初期設定 箱＃０＝「小吉」 箱＃１＝「中吉」 箱＃２＝「吉」 箱＃３＝「大吉」 箱＃４＝「凶」 箱＃５＝「大凶」 ＊おみくじボタン作成 おみくじボタンを、ボタンとして、作成。 その、テキストを、「おみくじ」に、設定。 その、イベントを、おみくじ引くに、設定。 待機。 ＊おみくじ引く ６の、乱数。 番号は、それ。 結果＝箱＃番号。 結果と、言う。 待機。`

> これは、初期設定で、配列変数に、「吉」や「凶」といった占い結果をしまっておき、おみくじを引く段になったら、どの箱を表示するのかランダムに表示するというものです。

ＧＵＩオブジェクトの「リスト」

> 配列変数と、GUIオブジェクトの「リスト」は、密接に結びついています。
> 例えば、以下のプログラムを見てください。

> `｛配列変数の初期化｝ メニュー一覧＃０＝「牛丼」。 メニュー一覧＃１＝「ハンバーガー」。 メニュー一覧＃２＝「ピザ」。 メニュー一覧＃３＝「うどん」。 ｛リストの作成｝ リスト１を、リストとして、作成。 リスト１の、アイテムを、メニュー一覧に、設定。`

> （実行結果↓）
> リストの、アイテム項目に、配列変数を、指定することで、上記のように、配列変数の内容を、リストのアイテムに設定することが出来ます。

> 応用：リストのイベント

> `{リストオブジェクトを使った配列のサンプル} メニュー一覧＃０＝「牛丼」。 メニュー一覧＃１＝「ハンバーガー」。 メニュー一覧＃２＝「ピザ」。 メニュー一覧＃３＝「うどん」。 リスト１を、リストとして、作成。 リスト１の、アイテムを、メニュー一覧に、設定。 リスト１の、イベントを、リスト１クリックに、設定。 待機。 ＊リスト１クリック リスト１の、値を、インデックスに、得る。 「選ばれたのは、｛メニュー一覧＃インデックス｝です。」と、言う。 待機。`

配列関連の命令で遊ぶ

> 配列変数には、配列変数を操作するための命令が用意されています。
> これらを使って遊ぶと、快適に配列で遊ぶことが出来ます。
> 例えば、「要素数」という命令は、配列変数の要素の数を得ることが出来ます。

> 配列変数A=「1 2 3 4 5 6」 配列変数Aの、要素数。 それを、言う。

> また、「配列最大値」は、配列変数の中で一番大きな数を得ることが出来ます。

> 配列変数A=「1 2 3 4 5 6」 配列変数Aの、配列最大値。 それを、言う。

> 次に、配列の途中へ、何か別の値を、挿入したいときは、「行挿入」を。
> 逆に、削除したいときは、「行削除」を、使います。

> 配列変数A=「1 2 3 4 5 6」 配列変数Aの、3行目へ、「3.5」を、行挿入。 それを、言う。 配列変数Aの、4行目を、行削除。 それを、言う。

目次へ戻る／次へ