Array/ja
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
Bahasa Indonesia (id) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
配列 は、同じ種類の 変数 の集合です。 例えば、 char や、 integer や, real の配列です。 実際、ユーザー定義型を含むどのような種類の変数も、配列の形に扱うことができます。 しかしながら、 配列の要素は同じ種類でなくてはいけません。 つまり、異なる種類の変数は、ひとつの配列の中に集めることはできません。 この目的のためには、 record を用いてください。
配列は、数学的には以下の反映となります。
- ベクトル (1次元配列)
- マトリックス (2次元配列)
静的配列
宣言部は単純な種類と似ていますが、配列の要素の種類と、インデックスの範囲を指定して要素数を設定する必要があります。
program
...
var
variablename: array [startindex..endindex] of type;
begin
...
startindex は endindex と等しいか、それより小さい必要があります。 そしていずれも Integer 定数( Integer、または const)である必要があります。 また、片方または両方の値がマイナスまたは0(ゼロ)の値を持つことができます。
1次元配列
1次元配列の参考例を以下に示します。:
type
simple_integer_array = array [1..10] of integer;
var
Numbers: simple_integer_array;
多次元配列
多次元配列 は、 [x..y,z..t] などの表記をします。
多次元配列の参考例を以下に示します。:
type
more_complex_array = array [0..5,1..3] of extended;
var
specialmatrix: more_complex_array;
動的配列
プログラムのコンパイル時に配列の要素数が未定の場合、 動的配列 が利用できます。 動的配列は、プログラムの実行時に、その要素数を増減させることができます。
配列要素へのアクセス
配列の要素にアクセスするには、配列変数の名前に、要素の位置をブラケット(かっこ:[])の間に挟んで示した記述をすることが必要です。 こうすることで、配列の要素を普通の変数と同じように使用できます。 しかし、もしもパラメーターを使用したいのであれば、あなたは 構造体 を使わなくてはいけません。 なぜならおそらくエラーかバグになるからです。(わたしはわかりません。これが何を意味しているか;元文まま)
Var
my_array : array[1..3] of Integer;
my_matrix : array[1..5,1..5] of Integer;
some_value : Integer;
...
begin
my_array[2] := a + 2;
my_matrix[2,3] := some_value;
...
some_value := my_array[2];
some_value := my_matrix[4,3];
end.
配列の定数
配列の定数には、それがどこに位置するかによって、2つの書式があります。 変数宣言部にある場合、静的配列は 丸かっこ() 内の値によって初期化できます( 動的配列 ではできません) 。 ステートメントブロック内では、 角括弧[] 内の値のみで、変数名を指定しない配列を作ることができます。 例を以下に示します。:
Var
// 静的integer配列を、配列定数を用いて初期化する
Numbers : array [1..3] of Integer = (1, 2, 3);
procedure PrintArray(input : array of String);
var
i : integer;
begin
for i := 1 to length(input) do
write(input[i - 1],' ');
writeln;
end;
begin
Writeln( Numbers[2] );
// 配列定数を用いて、3要素からなる文字列配列(変数名の指定無し)を作る
PrintArray( ['one', 'two', 'three'] );
end.
出力:
2
one two three
simple data types |
|
---|---|
complex data types |