各位能不能帮我看看这段程序啊.运行时出错了."[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"
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"
Data_Origin_Fit: TData; //定义二维数组
运行到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
---------------------------
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]
别的地方没有问题.
那么在你的调用函数当中,也用TData声明即可。
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); //调用子函数
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); //调用子函数 我郁闷,代码风格下竟然不能使用自定义颜色。