値パラメータとして配列を渡す
配列の受け渡しには、オープン配列パラメータを使います。オープン配列パラメータとは、異なるサイズの配列を同じ手続き、又は関数に渡せることを言います。
引数のデータを指定するときには、「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;