EasyLanguageでプログラムを書いているときに、行列(または配列)で表したい!というときはないでしょうか。
そんなときに役に立つのが、Array関数です。
単に、inputsや、varsで設定しているように、Arrayとして変数を設定すればOKです。


目次
変数の宣言の仕方
変数の宣言の仕方としては、以下を参考にしてください。
Array : ArrayName[Colum,Raw] (0);
項目 | 解説 |
Array | 行列を宣言する関数(Arraysも可) |
ArrayName | 変数名なので、なんでも可 |
Colum | 行数を指定 |
Row | 列数を指定 |
また、最後の(0)は初期値です。
ちなみに、
Array : int ArrayName[Colum,Raw] (0);
のように、「int」を付けると、正数型の行列が宣言できます。他にも、「double」など指定できます。
その他注意点として、EasyLanguageでの行列は、0行0列を持っています。すなわち、arraynameとしても、3行2列ではなく、4行3列の配列ができます。
ゼロ行ゼロ列はありますが、そこには値をいれてはいけません(公式サイトより)
ダイナミックアレイ(動的配列)
先程は行列数を指定しましたが、行列数を後で追加できるタイプの行列設定(動的配列)も可能です。
設定の仕方は以下のように、行列数を指定せずに変数宣言します。
Array : DynArrayName[] (0);
ダイナミックアレイの変数宣言は、通常の行列と同じように、Arrayを用います。
DynArrayNameは設定する名前なので、なんでも構いません(英数字のみ、大文字と小文字の区別なし)。
[ ]内を空欄にすることで、ダイナミックアレイの宣言ができます。
ダイナミックアレイは、その行に数字をいれる前に、行数の大きさを設定する必要があります。
Array_SetMaxIndex(DynArrayName, 5) ;
これで、行列数は最大で5ですよとなります。
ですが、先ほどと同様に、ゼロ行があるので、配列自体は6行1列の行列です。
なお、ダイナミックアレイは、1列しか設定できません。
ダイナミックアレイは○行1列の配列のみに対応してます。
値を代入する場合は、以下を参考にしてください。
DynArrayName
= 5 ;
これで、4行目に5を代入できます。
ゼロ行があるので、3行目ではなく4行目になる点を注意してください。
ダイナミックアレイの便利な使い方
ダイナミックアレイを用いると、いくつか便利な使い方ができます。
例えば、合計値を計算したり、大きい順に並び替えることもできます。
行列の合計値を計算する
value1 = Array_Sum(DynArrayName,2,5);
これで、要素2から5までの合計値を計算できます。
行を並び替える
行を昇順または降順で並び替えることができます。
Value1 = Array_sort(DynArrayName,2,5,True);
これで、要素2から5を昇順(True)で並び替えることができます。
降順にしたいときは、Falseとしてください。
なお、この関数には戻り値があり、各戻り値は以下を示します。
- 0…並び替えが正常に完了
- -1…下記以外のエラー
- -2…行列の名前が無効
- -3…指定した要素が、行列の範囲外
- -4…TrueかFalseの設定ミス(入力ミスなど)
ここで注意してもらいたいのが、Value1にソートされた行列が入るわけではないということです。
あくまで、Value1には、戻り値である-4~0の値しか入りません。
したがって、行列をソートすると、並び替わった行列に上書きされて、もとの順番の行列はなくなります。
まとめ
行列(配列)の設定の仕方を紹介しました。
複数のデータを格納したいときなどに非常に便利です。
さらに、ダイナミックアレイ(動的配列)を用いれば、その行列内の合計値や並び替えができます。
これを使うことで、プログラムの幅が広がるかと思います。

