美好的一天,我需要就我写的一段代码提出建议。这是我的delphi7学校教科书中的一项活动,所以你可以想象我仍然是pascal的新手。 我的程序工作正常并得到我需要的结果,但我收到一个奇怪的: 运行时“无效的浮点运算”消息,程序不会崩溃。由于我的知识有限,我无法找到这个错误背后的原因。这是令人困惑的,因为我没有使用任何实数,但请看看。 如果您需要其他信息,请与我们联系 提前谢谢,我愿意学习!
private arrLearners : array of string; arrMod : array of string;
procedure TfrmPortfolios.btnEnterClick(Sender: TObject);
var
numL,k,d,a : integer;
l :string;
begin
k:=0;
numL:=0;
repeat
numL := StrToInt(InputBox('Enter names','How many learners in Subject?
(Max 30):','30'));
until
numL<=30;
SetLength(arrLearners, numL);
for k:=0 to numL-1 do
begin
arrLearners[k]:='Student No'+IntToStr(k+1);
end;
k:=0;
d := numL div 5; //used to see for every which learner will go to moderation. I.e if d=3 then every third student.
if numL <=9 then // below 9, d=1 then it's every student anyways
begin
for k:=0 to NumL-1 do
begin
SetLength(arrMod,NumL);
arrMod[k]:=arrLearners[k];
end;
end
else
begin
a := numL div d;
SetLength(arrMod, a);
for k:=0 to a-1 do
begin
arrMod[k] := arrLearners[(k*d) +1];
end;
end;
k:=0;
redOutput.Lines.Add('Students sent for moderation:'+#13);
for k:=0 to numL-1 do
begin
l:= arrMod[k];
redOutput.Lines.Add(l);
end;
end;
答案 0 :(得分:0)
确保已启用范围检查和溢出检查选项。你可以使用编译器指令{$ R +,O +}在代码中全局或本地启用它们。范围检查是一个非常有用的东西 - 它可以节省你很多时间调试奇怪的问题。