If statement Pascal中for循环的If条件

If statement Pascal中for循环的If条件,if-statement,for-loop,pascal,If Statement,For Loop,Pascal,我有问题。如果for循环中的条件仅检查一次。有什么问题吗?这是我的密码: program Planas; function skaiciuoti() : integer; var z, zz, d, dt, dp, i, sk : integer; Fr, Fw : text; begin Assign(Fr, 'Duomenys.txt'); Reset(Fr); ReadLn(Fr, d, z); zz

我有问题。如果for循环中的条件仅检查一次。有什么问题吗?这是我的密码:

program Planas;

function skaiciuoti() : integer;
  var z, zz, d, dt, dp, i, sk : integer;
                       Fr, Fw : text;
  begin
    Assign(Fr, 'Duomenys.txt');
    Reset(Fr);
    ReadLn(Fr, d, z);
    zz := 0;
    dt := d;
    for i := 1 to d do
      begin
        Read(Fr, sk);
        zz := zz + sk;
        if sk >= z then
          dt := d - 1;
      end;
    z := d * z - zz;
    dp := z div d;
    if z mod d <> 0
      then dp := dp + 1;
    Close(Fr);
    WriteLn(dt);
    WriteLn(z);
    WriteLn(dp);
  end;
begin
  skaiciuoti();
  Readln;
end.

p.S.谢谢您提前回答!:

在dt:=d-1中,您的代码可能有输入错误。d的值在循环中似乎是恒定的,因此在第一次成功检查后dt不会改变。我想你可能想用dt:=dt-1来减小dt

当你单步执行代码时,调试器会告诉你什么?@KenWhite-Huh。。。如何在FPS 0.6.4a中启用调试器?什么是FPS 0.6.3a?我从没听说过。@KenWhite这是Pascal编译器立陶宛版本我编辑过你的标题。请看,如果共识是否定的,他们就不应该这样做。