2015-01-05 7 views
1

인 경우 문제가 있습니다. 의 조건이 인 경우에 대한 루프가 한 번만 검사됩니다. 뭐가 문제 야? 내 코드는 다음과 같습니다.파스칼에서 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 미리 답변 해 주셔서 감사합니다. :)

+1

코드를 단계별 실행할 때 디버거에서 알려주는 것은 무엇입니까? –

+0

@KenWhite Huh ... FPS 0.6.4a에서 디버거를 사용하는 방법은 무엇입니까? – Sprunkas

+1

FPS 0.6.3a 란 무엇입니까? 나는 그것에 대해 들어 본 적이 없다. –

답변

0

아마도 코드에 오타가 dt := d - 1 인 것 같습니다. d의 값은 루프 내에서 일정한 것으로 보이므로 dt은 처음 성공적으로 확인한 후에 변경되지 않습니다. 내 생각에 dt := dt - 1을 사용하여 dt을 감소시키고 싶었을 것입니다.