数组值没有变化

时间:2014-06-10 09:32:13

标签: delphi delphi-xe

我试图检查四个数组的初始元素,但系统抛出一个默认值为.000。看起来循环正在运行,但所有元素的值仍未改变。请看看!

var
  Form1: TForm1;
  n_max : integer;
  n: integer;
  r, R1, f, h0 : Array of Real;

const
  h = 0.00889; nip= 100;
  cod = 10;
  rod = 76;
  nip_dia = 5; viscosity = 0.001; velocity = 76;


implementation

{$R *.dfm}


    procedure TForm1.Button1Click(Sender: TObject);
    begin

       n_max := Round(((rod-cod)/2)/h);
       Setlength(r, n_max);
       Setlength(f, n_max);
       Setlength(h0, n_max);
       Setlength(R1, n_max);

       for n := 0 to n_max-1 do;

        r[n]:= cod/2 + h*n;
        R1[n] := (r[n]*(nip_dia)/2)/(r[n]+(nip_dia)/2);
        f[n] := nip*((r[n]-r[0])/r[n]);
        h0[n] :=4*viscosity*velocity*(1/(60*(R1[n]/f[n])));


       Edit1.Text := FormatFloat('#.00', r[1]);
       Edit2.Text := FormatFloat('#.00', f[1]);
       Edit3.Text := FormatFloat('#.00', h0[1]);
       Edit4.Text := FormatFloat('#.00', R1[1]);


    end;

    end.

1 个答案:

答案 0 :(得分:1)

你的循环没有运行。 它由do;终止。 您需要通过开始/结束块包围循环计算。

应该是:

for n := 0 to n_max-1 do
begin
  r[n]:= cod/2 + h*n;
  R1[n] := (r[n]*(nip_dia)/2)/(r[n]+(nip_dia)/2);
  f[n] := nip*((r[n]-r[0])/r[n]);
  h0[n] :=4*viscosity*velocity*(1/(60*(R1[n]/f[n])));
end;

请参阅文档For Statements