なでしこWEB > マニュアル > プログラミング基礎
なでしこ
プログラミング基礎編〜配列変数
たくさんの変数を一度に使うときには「配列変数」が便利!
たくさんの値を扱いたいときは配列変数を使うと便利です。配列変数を使うとインデックス(要素番号)を使って変数にアクセスできます。
国語の成績を集計する
もし、配列変数を使わないで、国語のテストの成績の合計点を計算するプログラムを作るとこんな感じです。
相川は、30
伊藤は、70
加藤は、25
佐藤は、50
瀬川は、80
外山は、34
七瀬は、73

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

合計点は、点数の配列合計
合計点を表示。
どうでしょうか。『変数名¥番号』で別々の変数にアクセスできるので、一度にたくさんのデータを扱うのが楽になります。また、配列変数を使うと、番号を指定して変数にアクセスしたり、合計や平均を計算することができます。
配列変数の合計を繰り返し
配列の合計を調べるのは、上のように『配列合計』という命令を使って調べる方法もあるのですが、『繰り返す』構文を使って調べることもできます。
点数¥0は、30
点数¥1は、70
点数¥2は、25
点数¥3は、50
点数¥4は、80
点数¥5は、34
点数¥6は、73

合計点は0
番号を0から6まで繰り返す
  合計点は、合計点+点数¥番号
合計点を表示。
これを実行すると、先ほどと同じように362が表示されます。『配列¥番号』の番号部分には変数を指定することもできるのです。
繰り返しの様子をレポートして欲しい
えぇぇ?!
ちょっと待ってください。上のプログラムがよく分からないんです。どうなっているんですか?
そうですね。それでは、それぞれがどうなっているのか確認しながら実行してみましょう。
点数¥1は、70
点数¥2は、25
点数¥3は、50
点数¥4は、80
点数¥5は、34
点数¥6は、73

合計点は0
番号を0から6まで繰り返す
  「点数¥{番号} = {点数¥番号}」を表示。
  1秒待つ
  合計点は合計点+点数¥番号
  「合計点 = {合計点}」を表示。
  1秒待つ
上のプログラムは、実行の途中に、『1秒待つ』と、『表示』を追加しました。繰り返しの状態がどうなっているのかを分かりやすく表示しながら実行します。

なでしこエディタのメニューの[実行-実行している行を追跡]のチェックを入れて実行するとさらに分かりやすく実行している行を示してくれます。
はじめは、何が起こっているのかわからないかもしれないけれど、何度も実行して何がどのように実行されているか見比べて理解してみてください。
私も、はじめてプログラムを習ったときは、これがどうしてうまく動くのか分からなくてずいぶん悩みました。点数を一人分増やしてみたり、実行するときに表示されるものを変えてみたりしてじっくり研究してみてください。
リストに表示する
次に、配列変数の中身をリスト部品に表示してみましょう。リスト部品を作るには、『名前とはリスト』と書きます。するとリスト部品が作れらます。下のプログラムを実行してみてください。リストの中に配列変数の内容を表示します。
  点数¥0は、30
点数¥1は、70
点数¥2は、25

成績リストとはリスト。
成績リストのアイテムは点数
これを実行すると、下のように表示されます。
なでしこ流、配列変数の一括セット
ところで、配列変数にデータをセットする場合、
配列¥0= 値0
配列¥1= 値1
・・・
のように書いていくのはとても面倒です。
そんな時は、以下のように書いても同じように機能します。
点数は「30
45
22
18
36
60
72」

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

点数リストとはリスト。
点数リストのアイテムは点数。
これを実行すると、合計点数の283と点数の一覧がリストに表示されます。このように、文字列に一行ずつ値を書いていくと、それが配列変数の一要素となるのです。逆に配列変数を表示すると、文字列として表示されるのです。
以下のプログラムを実行してみると良く分かります。
点数¥0= 50
点数¥1= 30
点数¥2= 35
点数を表示。
これを実行すると、
50
30
35
と表示されます。
なでしこでは、文字列→配列と、配列→文字列を自動的に変換してくれるという仕組みになっています。
並び替える
なでしこには、配列変数を便利に扱うための命令がいくつか用意されています。ここでは、「配列数値ソート」という命令を取り上げようと思います。
「配列数値ソート」を使うと、配列変数の中にある値を数値順に並び替えてくれるという機能を持っています。ちょっと使ってみましょう。
点数¥0= 50
点数¥1= 30
点数¥2= 35
点数¥3= 80
点数¥4= 25

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

整列ボタンとはボタン
整列ボタンをクリックした時は〜
  点数を配列数値ソート
  点数リストのアイテムは、点数。
プログラムを実行すると、点数がリストに表示されます。そして、整列ボタンを押すと、点数を数字の小さい順に並び替えます。
配列変数に使う記号について
配列変数は『変数¥番号』というふうに使いますが、『変数[番号]』というように[ .. ]で番号を囲う書き方もできます。
C言語など、他のプログラム言語では配列変数を『変数[番号]』と書きますので、なでしこでも同じように書ける様になっています。

次のページ→二次元配列変数
前のページ←繰り返す
なでしこWEB > マニュアル > プログラミング基礎