我试图检查四个数组的初始元素,但系统抛出一个默认值为.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.
答案 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。