なんか作って載せます

配列変数か……。どんな時に使うといいんでしょうね。

第10回:配列変数について



 今回は、「配列変数」についてやります。


 今まで変数といえば「a」とか「hen」などという名前を付けて、その中に数値や文字列を記憶させておく入れ物でした。
 これに、「通し番号」を付けて同時にたくさんの情報を入れることができるようにしたのが、「配列変数」と呼ばれるものです。

 例えば名前は変数「a」だけど、その後ろに番号を付けて「変数aの1番」「変数aの2番」という具合に、「変数名+数字」という形でたくさんの情報を入れておく入れ物として使います。

 スクリプトを書く時は、「変数名 (番号)」という形で書きます。

配列変数・例

 例えば、上のようなスクリプトを書いたとします。

 「a(0)」「a(1)」「a(2)」は、変数aの番号0、1、2番目となります。
 これらには、「a」という同じ名前が付いていますが、それぞれ中身が違いますね。

 通し番号が付いていること以外、普通の変数と同じように使うことができるのです。
 これが「配列変数」の特徴ですね。

 ちなみに、上のスクリプトを実行すると、「B=60」と表示されます。
 変数bには、a(0)、a(1)、a(2)の合計が代入されています。

 配列変数には、以下のルールがあります。

 ・変数名の後に括弧を付けて番号(要素)を指定する。
 ・番号は0から始める。
 ・あらかじめ「dim命令」で要素の最大数を決めておくことが出来る。
 ・通常は数値型としてのみ使うことが出来る。

 dim命令というものを使うと、あらかじめどこまでの要素を指定するのかを予約しておくことができます。
 これが無くても配列変数への代入はできますが、要素の範囲を予約することで必要な分だけメモリを確保しておくことができ、スクリプトの実行が効率的になるそうです。

 例えば、「dim hen,100」と書くと、henという変数は配列変数として100個分の要素を使えるようになります。
 100個というのは、「hen(0)」〜「hen(99)」までのことです。番号は0からなので。


配列変数・例2

 上の例では、henという名前の配列変数を使い、1行目〜7行目までで、配列に値を代入しています。
 これらを、とりあえず1週間の中で勉強した時間(分)ということにします。

 「hen(0)」は日曜日、「hen(1)」は月曜日……という感じで、1日の内何分勉強したのかを示しています。

 このスクリプトを実行すると、1週間の勉強時間の合計と、1日の平均を出してくれます。

 こんな感じで。
配列変数・例2・実行

 このスクリプトのポイントは、「hen(a)」のように、配列の通し番号の指定を変数で行なっているところにあります。

 流れとしては、まず、mes命令で「No.a=hen(a)」と表示されます。aは0からで、hen(0)は30なので、ここの表示は「No.0=30」となります。
 表示の次に、変数totalにhen(a)の値が加算されます。そして、aに+1されます。
 aの値が7より小さい場合、ラベルkuriに戻って同じ処理を行います。
 0〜6の計7回処理を行った後、mes命令で変数totalを「合計=」の形で表示させます。
 その次に、平均を出すために変数totalの値を7で割ります。
 そして、平均もmes命令で表示して終わりです。

 配列変数と繰り返しを用いれば、合計を出すために「hen(0)+hen(1)+hen(2)……」などのような長ったらしい計算式を書かなくても済みます。
 上の例では0〜6でしたが、それが0〜99や0〜999であっても、スクリプトを少し変更するだけで対処できるのです。

 配列変数と繰り返しによる配列変数の使用は、一緒に使われるケースが多いんだそうです。

 まだまだ、どんな場面で配列変数を使うべきなのかははっきりと理解できていませんけど、使っていくうちに慣れていくということなので、頑張って勉強していこうと思いました。


 今回はこれで終わり。


2012/05/11/Fri 更新

inserted by FC2 system