一段VB编纂的代码转成C++语言求教

一段VB编写的代码转成C++语言求教
Const Ts = 0.5  '采样时间
  Const L = 300  '仿真步数
  pi = 3.14
  
  d = 3  '对象滞后
  
  Dim A(0 To 2) As Single
  Dim B(0 To 1) As Single
  Dim ek(-2 To -1) As Single  'e(k-1),e(k-2)
  Dim u(-10 To L) As Single
  Dim y(-20 To L) As Single
  Dim yr(0 To L) As Single
  Dim time(0 To L) As Single
  
  A(0) = 1: A(1) = -1.6065: A(2) = 0.6065: na = 2  '对象参数
  B(0) = 0.1065: B(1) = 0.0902: nb = 1
  
  '控制器参数
  kp = kp.Text
  ki = ki.Text
  kd = kd.Text
    
  '********************** 实时控制 **********************
  For k = 0 To L
    time(k) = k * Ts
    
    y(k) = 0  '采集实际输出
    For I = 1 To na
        y(k) = y(k) - A(I) * y(k - I)
    Next I
    For I = 0 To nb
        y(k) = y(k) + B(I) * u(k - d - I)
    Next I

    yr(k) = 10 * Sgn(Sin(0.01 * 2 * pi * k * Ts))  '方波参考输入
    e = yr(k) - y(k)
    
    du = kp * (e - ek(-1)) + ki * e + kd * (e - 2 * ek(-1) + ek(-2))  '增量式PID控制律
    u(k) = u(k - 1) + du
    
    ek(-2) = ek(-1): ek(-1) = e  '更新数据
  Next k


如上代码是VB编写的,我想在VC里面写这段代码,但是老是报错,这是为什么啊         double Ts = 0.5; //采样时间
         double pi;
int k,i;

int d = 3;  //对象滞后

double A[2];
double B[1];
double LastError,PrevError;
double u[50];
double y[50];
double yr[50];
double time[50];
double e,du;

int na = 2,nb = 1;  //对象参数

pi = 3.14;
A[0] = 1;
A[1] = -1.6065;
A[2] = 0.6065;

    B[0] = 0.1065;
B[1] = 0.0902;

// UpdateData();
y[0]=0;
y[1]=0;
y[2]=0;
y[3]=0;
yr[0]=10;
yr[1]=10;
yr[2]=10;
yr[3]=10;
u[0]=0;
u[1]=0;
u[2]=0;
u[3]=0;
time[0]=0;
time[1]=Ts;
time[2]=2*Ts;
time[3]=3*Ts;
e=0;
PrevError=0;
LastError=0;
du=0;
                     for(k=4;k<50;k++)
{
time[k] = k*Ts;
// y[k]=0;
for(i=1;i<=na;i++)
{
y[k]=y[k]-A[i]*y[k-i];
}
for(i=0;i<=nb;i++)
{
y[k]=y[k]+B[i]*u[k-d-i];
}
yr[k]=10;
//yr[k]=10*(Sgn(sin(0.01*2*pi*k*Ts)));
e=yr[k]-y[k];

//du=kp*(e-PrevError)+ki*e+kd*(e-2*PrevError+LastError);
du=0.4*(e-PrevError);
u[k]=u[k-1]+du;

// LastError=PrevError;
PrevError=e;

}
------解决方案--------------------
double A[2];
double B[1];
要改为
double A[3];
double B[2];