// calculate the coefficient, //Data : Array[0..30,  0..6] of Double
procedure CalCoef(Data : Array of Double);
var  i, j, k : Integer;
begin
  try
    sump := 0.0;
    sumt := 0.0;
    //
    for i := 0 to 2 do
    begin
        for j := 0 to 5 do
        begin
            for k := j*4 to j*4+3 do
            begin
                sump := sump + Data[k,i+4];
                sumt := sumt + Data[k,0];
            end;
            
            
           
        end;
    end;
sump := sump + Data[k,i+4]; 这句话提示错误Array Type Required,
我想应该是没设置数组维数的原因,看了下帮助没看明白。
Data应该是31X7的数组

解决方案 »

  1.   

    type
      TDoubleArray = array of Double;
    procedure CalCoef(Data : Array of TDoubleArray );
      

  2.   

    array of Double是一维的动态数组,delphi不支持直接用高维动态数组作参数,必须先定义一个新的类型,如
    Tfoo = array of array of Double

    Tfoo = array of array[0..6]of Double
    再用Tfoo作参数声明
      

  3.   

    或者:
    type 
      TDualDoubleArray = array of array of Double; 
    procedure CalCoef(Data : TDualDoubleArray ); 
      

  4.   

    另外这样也可以, 二维数组等于指向一维数组的指针,在DELPHI里实现麻烦点
    #include <iostream>
    using namespace std;
    void fun(int a[][3])
    {
    }
    int main(void)
    {   
        /*方法一, 指向一维数组的指针*/
        int a[3] = {0};
        int (*b)[3] = &a;
        fun(b);
        
        /*方法二,直接调用*/
        int c[][3] = {0};
        fun(c);
        return 0;
    }type
      ArrayType = array[0..3] of Integer;
      pArray = ^ArrayType;var
      ArrayType1: ArrayType;
      Array_pointer: pArray;
      J: Integer;
    begin
      for J := 0 to High(ArrayType1) do
       ArrayType1[j] := j;
      Array_pointer := @ArrayType1;
      fun(Array_pointer^); 
    end;//显示二维数组内容
    procedure fun(Test: array of ArrayType);
    var
      I, J: Integer;
    begin
      for I := 0 to High(Test)  do
        for J := 0 to High(ArrayType)  do
        ShowMessage(IntToStr(Test[I,J]));
    end;
      

  5.   

    感觉写指针方面的东西,还是C++顺手些,DELPHI 有点拗口
      

  6.   

    delphi中数组作为参数传递,要将数组作为一个类去传递
      

  7.   


    應該是自定義成一個新的數據類型,
    好像 pByte = array of Byte  :)
      

  8.   

    Tfoo = array of array of Double 
    这个可以,我时这么用的
      

  9.   

    需要定义一种新的数据类型,比如:type TDynamicCharArray = array of Char;
    function Find(A: TDynamicCharArray): Integer;