疑問に思わなかったことは身につかない
『WRITING SOLID CODE』STEVE MAGUIRE著、関本健太郎訳より引用
配列とはいくつかの変数を一つのグループにまとめたものである。配列は、学校の中の一つのクラスだと考えるとイメージし易い。それぞれ一つずつの変数を一人の生徒だとみなすと、配列はある一つのクラス、たとえば 1 年 B 組などに相当するものだと考える事が出来る。
たとえ 1 年 B 組というグループがあったとしても、そのグループの生徒は、たとえば佐藤太郎君などのように、それぞれ名前を持っているが、配列の場合は、1 年 B 組に相当するグループの名前は与えられても、佐藤太郎君だとかの、個々の変数の名前はもちえない。が、それぞれに番号が与えられている。1 年 B 組でいえば、生徒の出席番号にあたるものだ。出席番号は 1 番から、そのグループの生徒数までだが、配列の場合、その下限値と上限値は自由に決められる。
var Ary: array[0..2] of Integer; begin Ary[0] := 10; Ary[1] := 11; Ary[2] := 12; Writeln(Ary[0]); Writeln(Ary[1]); Writeln(Ary[2]); Readln; end.
10 11 12
配列変数の宣言は、
<配列の名前>: array[<下限値>..<上限値>] of <配列の型>;
となる。
Ary: array[0..2] of Integer;
の場合では、<配列の名前> は Ary, <下限値> は 0, <上限値> は 2, <配列の型> は Integer である。配列はいくつかの変数を一つのグループにまとめたものであると述べたが、その変数は全て同じ型を有していなければならない。複数の型の混在させることは出来ない。配列の個々の要素にアクセスするには添え字を使う。上の例のように 0 番目の要素にアクセスするには Ary[0]
のように書く。
配列と共によく使われる関数に High と Low 関数がある。High 関数は配列の添え字の上限値を返し、Low 関数は、配列の添え字の下限値を返す。
var Ary: array[0..12] of Integer; Ary2: array[1..10] of Integer; begin Writeln(Low(Ary)); Writeln(High(Ary)); Writeln(Low(Ary2)); Writeln(High(Ary2)); Readln; end.
0 12 1 10
High, Low 関数については、実行結果の通り。
補足:このコードを実行する際、もしかしたら次のようなヒントメッセージが出るかもしれない。
[ヒント] 変数 'Ary' が宣言されていますが 'Project1' の中では使われていません [ヒント] 変数 'Ary2' が宣言されていますが 'Project1' の中では使われていません
var x: Integer; begin Writeln(x); Readln; end.
上のコードを実行する際、エディタには下図のように警告のメッセージが表示される。
このコードを実行すると何が表示されるのか。つまり、値が代入されていない変数には何が入っているのだろう?答えというと、何が入っているかわからない。何が入っているか分からないから、(おそらくそんな変数にアクセスするようなプログラムはコードの書き手が誤って書いたプログラムに違いないと推測して)値が代入されていない変数にアクセスするようなコードを書くと、コンパイラ(プログラムをコンパイルをする別のプログラム)が「警告」としてそれを教えてくれる。
ちなみに、エディタの"[警告]"と表示されている欄をマウスで選択してから F1 キーを押すと、それに関するヘルプが表示される。
更新日:2004-11-23