ウィキのコピーミラー

これは pascal.chat のウィキのミラーです。編集、履歴、ログインはそちらで行います。

Array/ja

Bahasa Indonesia · Deutsch · English · Español · Français · Suomi · Русский · 中文(中国) · 日本語

配列 は、同じ種類の 変数 の集合です。 例えば、 char や、 integer や, real の配列です。 実際、ユーザー定義型を含むどのような種類の変数も、配列の形に扱うことができます。 しかしながら、 配列の要素は同じ種類でなくてはいけません。 つまり、異なる種類の変数は、ひとつの配列の中に集めることはできません。 この目的のためには、 record を用いてください。

配列は、数学的には以下の反映となります。

静的配列

宣言部は単純な種類と似ていますが、配列の要素の種類と、インデックスの範囲を指定して要素数を設定する必要があります。

pascal
program
...
var 
  variablename: array [startindex..endindex] of type;
begin
  ...

startindex は endindex と等しいか、それより小さい必要があります。 そしていずれも Integer 定数( Integer、または const)である必要があります。 また、片方または両方の値がマイナスまたは0(ゼロ)の値を持つことができます。

1次元配列

1次元配列の参考例を以下に示します。:

pascal
type
  simple_integer_array = array [1..10] of integer;
 
var
  Numbers: simple_integer_array;

多次元配列

多次元配列 は、 [x..y,z..t] などの表記をします。

多次元配列の参考例を以下に示します。:

pascal
type
  more_complex_array = array [0..5,1..3] of extended;
 
var
  specialmatrix: more_complex_array;

動的配列

プログラムのコンパイル時に配列の要素数が未定の場合、 動的配列 が利用できます。 動的配列は、プログラムの実行時に、その要素数を増減させることができます。

配列要素へのアクセス

配列の要素にアクセスするには、配列変数の名前に、要素の位置をブラケット(かっこ:[])の間に挟んで示した記述をすることが必要です。 こうすることで、配列の要素を普通の変数と同じように使用できます。 しかし、もしもパラメーターを使用したいのであれば、あなたは 構造体 を使わなくてはいけません。 なぜならおそらくエラーかバグになるからです。(わたしはわかりません。これが何を意味しているか;元文まま)

pascal
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つの書式があります。 変数宣言部にある場合、静的配列は 丸かっこ() 内の値によって初期化できます( 動的配列 ではできません) 。 ステートメントブロック内では、 角括弧[] 内の値のみで、変数名を指定しない配列を作ることができます。 例を以下に示します。:

pascal
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


From the Free Pascal wiki, page "Array/ja", as it stood on 2023-01-25 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

第1版、最終更新:WikiArchive 。