日本語プログラミング言語「なでしこ」 > マニュアル > 入門編

なでしこマニュアル入門編 - 配列変数

たくさんの値を扱いたいときは配列変数を使うと便利です。配列変数を使うとインデックスを使って変数にアクセスできます。

1.配列変数

例えば、学校でクラスメイトのテストの点を集計するプログラムだったり、
会社で社員の営業成績を集計するプログラムを作るときに、配列変数を
使うと便利です。

もし、配列変数を使わないで、国語のテストの成績の合計点を計算するプログラムを作ると
こんな感じです。
相川は、30
伊藤は、70
加藤は、25
佐藤は、50
瀬川は、80
外山は、34
七瀬は、73

合計点は、相川+伊藤+加藤+佐藤+瀬川+外山+七瀬
合計点を表示。
これを実行すると、362が表示されます。
ただ、これだと、合計点を計算するのが大変です。
配列変数を使うとこんな感じになります。
点数[0]は、30
点数[1]は、70
点数[2]は、25
点数[3]は、50
点数[4]は、80
点数[5]は、34
点数[6]は、73

合計点は、点数の配列合計。
合計点を表示。
これを実行すると、362が表示されます。
このように配列変数を使うと、番号を指定して変数にアクセスすることができて、
合計や平均を計算することができます。
今回は、7名だけでしたが、これが、40人にもなると、配列変数を使わないことには
大変なことになってしまいます。

2.配列変数の合計を繰り返し

配列の合計を調べるのは、上のように『配列合計』という命令を使って調べる方法も
あるのですが、『繰り返す』構文を使って調べることもできます。
点数[0]は、30
点数[1]は、70
点数[2]は、25
点数[3]は、50
点数[4]は、80
点数[5]は、34
点数[6]は、73

合計点は0
番号を0から6まで繰り返す
   合計点は合計点+点数[番号]

合計点を表示。
えぇ?!これどうなってるんですか?
よく分からないのでもう少し詳しく教えてください。
そうだね。
それじゃぁ、それぞれがどうなっているのか確認しながら実行してみましょう。
点数[0]は、30
点数[1]は、70
点数[2]は、25
点数[3]は、50
点数[4]は、80
点数[5]は、34
点数[6]は、73

合計点は0
番号を0から6まで繰り返す
  「点数[{番号}] = 」点数[番号]を表示。
  1秒待つ
  合計点は合計点点数[番号]
  「合計点 = 」合計点を表示。
  1秒待つ

合計点を表示。
上のプログラムは、実行の途中に、『1秒待つ』と、『表示』を追加しました。
繰り返しの状態がどうなっているのかを分かりやすく表示しながら実行します。
はじめは、何が起こっているのかわからないかもしれないけれど、
何度も実行して何がどのように実行されているか見比べて理解してみてください。

私も、はじめてプログラムを習ったときは、これがどうしてうまく動くのか
分からなくてずいぶん悩みました。

点数を一人分増やしてみたり、実行するときに表示されるものを変えてみたりして
じっくり研究してみてください。

3.リストに表示してみる

次に、配列変数の中身をリストに表示してみましょう。
リストを作るのは、ボタンやエディタと同じように
『(変数名)とはリスト。』とします。
下のプログラムを実行してみてください。
リストの中に配列変数の内容を表示します。
点数[0]は、30
点数[1]は、70
点数[2]は、25

成績リストとはリスト。
成績リストのアイテムは点数
これを実行すると以下のようにリストボックスに点数の一覧が
表示されます。
リストを使うと配列の内容を表示するのに便利なんですね。

4.なでしこ流、配列変数の一括セット

ところで、配列変数にデータをセットする場合、
配列[0] = 値0
配列[1] = 値1
・・・
のように書いていくのはとても面倒です。
そんな時は、以下のように書いても同じように機能します。
点数は「30
45
22
18
36
60
72」

点数合計は、点数の配列合計
「合計は、{点数合計}」と表示。

点数リストとはリスト。
点数リストのアイテムは点数。
これを実行すると、合計点数の283と点数の一覧がリストに表示されます。
このように、文字列に一行ずつ値を書いていくと、
それが配列変数の一要素となるのです。
逆に配列変数を表示すると、文字列として表示されるのです。
以下のプログラムを実行してみると良く分かります。
点数[0] = 50
点数[1] = 30
点数[2] = 35

点数を表示。
これを実行すると、
50
30
35
と表示されます。
なでしこでは、文字列→配列と、配列→文字列を自動的に
変換してくれるという仕組みになっています。

5.並び替える

なでしこには、配列変数を便利に扱うための命令がいくつか用意されています。
ここでは、「配列数値ソート」という命令を取り上げようと思います。
「配列数値ソート」を使うと、配列変数の中にある値を数値順に
並び替えてくれるという機能を持っています。
ちょっと使ってみましょう。
点数[0] = 50
点数[1] = 30
点数[2] = 35
点数[3] = 80
点数[4] = 25

点数リストとはリスト
点数リストのアイテムは、点数。

整列ボタンとはボタン
整列ボタンをクリックした時は〜
  点数を配列数値ソート
  点数リストのアイテムは、点数。
プログラムを実行すると、点数がリストに表示されます。
そして、整列ボタンを押すと、点数を数字の小さい順に並び替えます。
へぇ〜。数字を並び替えが簡単にできるんですね。

6.配列のきごうについて

なでしこでは、配列変数の要素を指定するのに以下の書き方ができます。

まずは、今まで見てきたような、『配列変数[要素番号]』という書き方。
そして、『配列変数¥要素番号』という書きかた。

後者の方が簡単にキーボードを叩けると思うので、気に入った方の
書き方をすればOKです。
→次へ

→戻る