各位能不能帮我看看这段程序啊.运行时出错了."[Error] svmunit.pas(94): Types of actual and formal var parameters must be identical" //子函数 
type Tdata = array of array of real;
function training(var data:Tdata ; labe:PDouble; num:integer):TResult;//TResult是结构体 //.......调用子函数部分......... 
m,i:integer;
m:=10;//在这里设一个定值
res:TResult; //TResult是结构体变量 
Data_Origin_Fit: Array of array of real; //定义二维数组 
Y:array of real; //定义一维数组 
setlength(data_origin_fit,1,m); 
setlength(Y,m);
for i:=1 to m do
  begin
  data_origin_fit[i-1][1]:=StrToFloat(Data_listBox1.Items.Strings[i-1]);]);//给data_origin_fit赋值   Y[i-1]:=strtofloat(data_listbox11.Items.Strings[i-1]);//给Y赋值
  end; 
res:=training(data_origin_fit,Y, m); //调用子函数 运行时提示"res:=training(data_origin_fit,Y, m);" 有问题:Types of actual and formal var parameters must be identical" 

解决方案 »

  1.   

    Data_Origin_Fit: Array of array of real; //定义二维数组 
    Data_Origin_Fit: TData; //定义二维数组 
      

  2.   

    回复1楼,还是不行啊.
    运行到res:=training(data_origin_fit,pdouble(@Y[0]),m);这个地方时弹出错误对话框 
    Debugger Exception Notification 
    --------------------------- 
    Project shujuchuli.exe raised exception class EInvalidOp with message 'Invalid floating point operation'. Process stopped. Use Step or Run to continue. 
    --------------------------- 
    OK  Help  
    --------------------------- 
      

  3.   

    setlength(data_origin_fit,1,m); 
    for i:=1 to m do 
    begin 
      data_origin_fit[i-1][1]:=StrToFloat(Data_listBox1.Items.Strings[i-1]);]);  //给ata_origin_fit
      
    end; 
    你的数据只能是data_origin_fit[0][i-1]
    别的地方没有问题.
      

  4.   

    前面有定义type Tdata = array of array of real; 
    那么在你的调用函数当中,也用TData声明即可。
      

  5.   

    res:=training(data_origin_fit,PDouble(@Y), m); 
      

  6.   

    汗...res:=training(data_origin_fit,PDouble(@Y[0]), m); 
      

  7.   


    type Tdata = array of array of real
    function training(var data:Tdata ; labe:PDouble; num:integer):TResult;//TResult是结构体 
    Data_Origin_Fit: Array of array of real; //定义二维数组// 表面上一样的数据类型,实际上PASCAL不承认的,必须按照以下定义:
    Data_Origin_Fit: Tdata;
    res:=training(data_origin_fit, PDouble(@Y[0]), m); //调用子函数  
      

  8.   

    type Tdata = array of array of real; 
    function training(var data: Tdata ; labe:PDouble; num:integer):TResult;//TResult是结构体 
    Data_Origin_Fit: Array of array of real; //定义二维数组// 表面上一样的数据类型,实际上PASCAL不承认的,必须按照以下定义:
    Data_Origin_Fit: Tdata;
    res:=training(data_origin_fit, PDouble(@Y[0]), m); //调用子函数 我郁闷,代码风格下竟然不能使用自定义颜色。