HP-BASIC入門
ホーム » HPBASIC入門 » 配列

配列


配列とは共通の名前を持つ変数の多次元構造です。配列は1つから6つまでの 次元をもつことができます。配列のそれぞれの位置には1つの値を入れることが できます。
1次元配列はn個の要素で構成され、各要素は添え字で識別します。 2次元配列はnのm倍要素で構成され、mおよびnは2つの次元それぞれの要素の 最大数です。
配列を使うことのメリットはたくさんの数値の集合体に対して一意的な 処理を施したり、まとめて取り扱うことができます。

配列の次元指定



配列は使用に先立ち、どれだけの量のメモリを確保しなければ ならないかを明示しなければなりません。 これを配列の次元指定といいます。 配列の次元指定はDIM、COM、ALLOCATE、INTEGER、REALまたはCOMPLEXを 使用しておこなうことができます。

10 OPTION BASE 0 !デフォルトナンバーは0から
15 DIM ARRAY(3,5) !(0,0)から(3,5)までの要素を宣言します。




配列は変数なので配列の名前は変数名に関する規則に従います。次元指定 するときにINTEGERまたはCOMPLEXデータ型を明示的に指定しない限り、 配列はデフォルトとしてREALデータ型に設定されます。

配列の次元指定をするとシステムはその配列のために内部メモリ内の空間 を確保します。さらに配列内の各要素の位置を示すために使用するテーブル も準備します。 各要素の位置は各次元ごとに1つずつ決まる添え字の一意的な組み合わせによって 指定します。

どのような配列でも必ず次元はあります。 配列はCOM、INTEGER、REAL、COMPLEXまたはALLOCATEのいずれかによって 次元指定をおこなうことができます。また配列の次元がわからなく なった場合はRANK関数を使用します。

100 OPTION BASE 0
120 DIM F(1,4,-1:2)
140 PRINT RANK(F)
150 END


これによって次元数の3がプリントされます。

配列要素への値の代入


配列を使うには値が代入できなくては意味がありません。 やり方としては各要素を1つずつ指定しても構わないので すが、 配列への全要素へ同一の値を代入する方法もあります。その場合はMAT関数を使用し、

MAT A=(10)


とします。この場合、右辺の数式をカッコで囲みます。 こうするとAの配列全体を初期化することができます。

また配列全体をコピーする方法もあります。

MAT A=B


この場合もMAT関数を利用しますが、AとBの配列の次元が異なるときは、 エラーとなってしまいます。 少なくとも2つの配列の次元が同じでなければならないことと、配列が 初期化(サイズ仕切り直し)ができる配列のサイズが同じでなければ なりません。 そのほか、配列への格納はREAD文とDATA宣言でも行うことができます。

100 DIM Rem(3,3)
200 DATA -4,36,2.3,5,89,17,-6,-12,42
300 READ A(*)


これによって配列へのデータ格納をスムーズに行うことができます。