値パラメータとして配列を渡す
配列の受け渡しには、オープン配列パラメータを使います。オープン配列パラメータとは、異なるサイズの配列を同じ手続き、又は関数に渡せることを言います。
引数のデータを指定するときには、「array of データ型」のように記述します。
配列の添え字は、実引数で「array[1..10]of Integer」のように指定した場合、先頭は1になりますが、仮引数では「0」が配列の先頭要素となります。
【サンプル】
procedure TForm1.Button1Click(Sender: TObject); //ボタンクリック
var
arrA : array[1..10] of Integer; //配列の宣言
i : Integer; //ループのカウント
begin
for i := 1 to 10 do begin //1から10までループ
arrA[i] := i;
end;{for} //カウンタの数値を配列に代入
Keisan(arrA); //配列を呼び出す
end;
procedure Keisan(A : array of Integer); //手続き
var
i,Kotae : Integer;
begin
Kotae := 0; //仮引数の添え字は0から
for i := 0 to 9 do begin //カウンタの値を足す
Kotae := Kotae + A[i];
end;{for} //メッセージボックスに答えを表示
ShowMessage(IntToStr(Kotae));
end;
【実行結果】
変数パラメータとして配列を渡す
変数パラメータの場合は、呼ばれる側の手続き(関数)で、仮引数の前に予約語varを記述します。
配列の添え字の上限は、High関数で取得できます。
【サンプル】
procedure TForm1.Button1Click(Sender: TObject); //ボタンクリック
var
arrA : array[1..10] of Integer; //配列の宣言
i : Integer; //ループのカウント
begin
Keisan(arrA); // 手続きの呼び出し
for i := 1 to 10 do begin //1から10までループ
ShowMessage(IntToStr(arrA[i])); // 配列の値を表示
end;{for} //カウンタの数値を配列に代入
end;
procedure Keisan(var A : array of Integer); //仮引数の前にvarをつける
var
i : Integer;
begin
for i := 0 to High(A) do begin //Hige()は添え字の最終値を取得
A[i] := i+1; //個々の配列に1から10の値代入
end;{for}
end;
