(没分了,帮忙)错误:incompatible typs:'k' and 'array' (25分)

  • 主题发起人 主题发起人 crossbannyli
  • 开始时间 开始时间
C

crossbannyli

Unregistered / Unconfirmed
GUEST, unregistred user!
{
xx:array[0..4] of double,程序运行时动态获得初始值
ss,sa:double
执行到schong(xx,ss,sa);
编译不能通过,提示:incompatible typs:'k' and 'array'
帮忙解决,谢谢
}


type
k=array[0..4] of double;
//---------------
procedure schong(kk:k;s,a:double);
//---------
procedure TForm1.schong(kk:k;s,a:double);//求冲程
var
temp1,temp2:single;//中间变量,转换
begin
temp1:=(xx[3]*xx[3]+xx[2]*xx[2]-Exp(ln(xx[1]+xx[0])*2))/(2.0*xx[2]*xx[3]);
temp2:=(xx[3]*xx[3]+xx[2]*xx[2]-Exp(ln(xx[1]-xx[0])*2))/(2.0*xx[2]*xx[3]);
fai1max:=arccos(temp1);
fai1min:=arccos(temp2);
ss:=(fai1max-fai1min)*ass;//冲程;
end;
//调用
schong(xx,ss,sa);
 
声明时写成
var
xx:k;

先试试,不行再说 你给的代码错误太多,光是那个SCHONG函数,就参数名不对,sa没有用。
 
调试通过了
又学到了点东西,谢谢你啊
procedure schong(kk:k;s,a:double);
begin
temp1:=(kk[3]*kk[3]+kk[2]*kk[2]-Exp(ln(kk[1]+kk[0])*2))/(2.0*kk[2]*kk[3]);
temp2:=(kk[3]*kk[3]+kk[2]*kk[2]-Exp(ln(kk[1]-kk[0])*2))/(2.0*kk[2]*kk[3]);
fai1max:=arccos(temp1);
fai1min:=arccos(temp2);
s:=(fai1max-fai1min)*a;//冲程;
end;
//
schong(xx,ss,sa);//通过
再问下,如果定义成函数,返回一个double类型数组res,
res[0]:=fai1min;
res[1]:=fai1max;
res[2]:=s;
用result:=res返回可以了吧?

 
多人接受答案了。
 
后退
顶部