Q&A

  • to 문이 자동으로 downto 문으로..
정말 이해가 되지 않더군요..

상황은 아래와 같습니다.

"FOR ki := 1 TO 3 do

begin

FOR Kj := 1 TO 5 do

begin

SguSUM[ki] := SguSUM[ki] + ChapL.Sgu[ki, Kj];

SglSUM[ki] := SglSUM[ki] + ChapL.Sgl[ki, Kj];

end;

end;" 에서

Kj 가 1에서 5까지 변하는 것이 아니라

5에서 1까지로 변한다는 것입니다.

그 이유가 궁금합니다.

누구 물(?) 좀 주십시오...

기다리겠습니다. 오늘 중으로...



2  COMMENTS
  • Profile
    안치봉 2000.01.08 20:23
    안녕하세요. 저도 델4에서 계산을 무쟈게 많이 하는 프로그램을 개발할때 아래와 같은

    이상한(?) 현상을 본적이 있습니다.



    하지만 저의 경우는 디버깅정보가 그렇게 출력되어도 맞게 돌았던것으로 - 문제가 없었던 것으로 압니다.



    우승식 wrote:

    > 정말 이해가 되지 않더군요..

    > 상황은 아래와 같습니다.

    > "FOR ki := 1 TO 3 do

    > begin

    > FOR Kj := 1 TO 5 do

    > begin

    > SguSUM[ki] := SguSUM[ki] + ChapL.Sgu[ki, Kj];

    > SglSUM[ki] := SglSUM[ki] + ChapL.Sgl[ki, Kj];

    > end;

    > end;" 에서

    > Kj 가 1에서 5까지 변하는 것이 아니라

    > 5에서 1까지로 변한다는 것입니다.

    > 그 이유가 궁금합니다.

    > 누구 물(?) 좀 주십시오...

    > 기다리겠습니다. 오늘 중으로...

    >

  • Profile
    여영식 2000.01.12 02:14
    그러한 현상은 바로 코드 Optimize 와 관계가 있습니다.



    프로젝트 옵션 메뉴에서 Compiler-CodeGeneration 항목의 Optimization 체크 박스가

    Checked 되어 있을 것입니다. 이것을 UnChecked 상태로 한 후 컴파일 하여

    디버깅을 해보시면 제대로 1..5 순서로 될것입니다.

    따라서 이것은 버그가 아니라 코드 생성 효율을 높이기 위한 방법이지요.



    그러면 어째서 5..4 순서가 1..5 순서보다 효율적인가를 생각해 보시죠.



    어셈블러로 FOR 문(루핑 처리)을 구현 할 때를 생각해 보시면 그 이유를 알 수 있겠지요???