配列の引き渡し

値パラメータとして配列を渡す

配列の受け渡しには、オープン配列パラメータを使います。オープン配列パラメータとは、異なるサイズの配列を同じ手続き、又は関数に渡せることを言います。

引数のデータを指定するときには、「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;

【実行結果】

ren25

変数パラメータとして配列を渡す

変数パラメータの場合は、呼ばれる側の手続き(関数)で、仮引数の前に予約語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;

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です