시나공 IT
험에
오는 것만
부한다!

통합검색

1:1 질문하기

제목 p43쪽 순열3 말이에요~
자격증 정보처리 기사 실기
도서/쪽 페이지 / 쪽
등록일 2007-11-09 조회 693
작성자 - (-)
p43쪽 (-1)x2(-3)x4x(-5)x.........x100의 합계에서 디버깅을 하는데 답이 자꾸 안나와서요 ㅠㅠ 디버깅표 i    j  MOD(i,2)  MOD(i,2)=0   i <5출력 0    1   1      No       yes 1   -1  0      Yes       yes 첨에 i를 0으로 초기화 시키고 j를 초기화 시켜서, i=i+1에 0을 넣으면 0+1값을 i에 저장시키죠? 그러면 일단 i에 1이 저장되고요~~~~!그 다음엔 MOD(i,2)=0을 판단해야하는데, 일단 짝수인지 홀수인지 알기위해서 나머지를 구해보는 작업을 디버깅에서 해보잖아요 i에 저장된게 1이니깐 MOD(1,2)를해보면 나머지가 0이 아니니깐 NO로 가죠? 그럼 J=Jxix(-1)를 처리해야하는데 j값이 원래 1로 초기화 되있으니깐 J=1x1x(-1)를 해서 j에 -1이 저장되구요 다음에 i<5보다 작으니깐 yes가 되서 다시 올라가서 이번엔 i=i+1에 0이아닌 1을 넣고 또 처리를 하잖아요. 그러면 i에 2가 저장되구요 또 홀수인지 짝수인지 판별하는 mod(i,2)를거치면 2나누기 2는 0이니깐 짝수이므로 yes에가서 j=jxi를 실행하죠!? 그런데 아까 기억하던 j값이 -1이니깐 j=jxi는 -1x2니깐 -2가 아닌가요?????? 디버깅할때 보면 i가 1일때 j=-2가 아닌가요???? 답안에 보면 -1이라고 나와있는데 ㅠ_ㅠ...이해가 안되요,..도와주세요
첨부파일
  • 첨부파일 없음
제목 답변이 올라오기전에..
등록일 2007-11-09
제가 지금 책이없어서 디버깅표를 못봐서 확실한 답변을 해드릴 순 없지만요, i가 1일 때 j=-1이 맞을거 같군요. 책에 있는 디버깅표를 보시면, 자기가 직접한 디버깅표가 아니기 때문에 헤깔릴 수 밖에 없습니다. 그 디버깅표에 대한 설명이 없다면 처음 접하는 사람에겐 더 헤깔리겠죠. 일단 위에 내용만 갖고 설명을하자면, 책에 디버깅표에서 i=1일 때 j=-1로 표시가 되어있는 것은 순서에 의한거지, 결과값은 아니라는 것입니다. 아마도 디버깅표에서 j는 1 -1 -2 6 24 -100... 이런식으로 나왔을거 같습니다. j가 왜 이렇게 나오냐하면, j의 변수 변화이기 때문입니다. 즉, j는 초기값 1부터 시작해서 계산을할 때마다 -1 -2 6 24 이런식으로 변해간다는걸 보여주는 것이지, i가 들어간 뒤 모든 계산이 끝난다음 j=jxi 이 계산 후에 나온 값이 아니라는 것이죠. i가 1 일때 j는 -1이라는 값을 갖고 있다는 것을 보여주는 것입니다. 님이 말씀 하신 -2는 그다음 i=2일 때 j=-2라고 나와 있을 것입니다. 왜냐면 아래 계산이 모두 끝난 뒤 다시 다음 계산을 위해 올라오면 j=-2값이 들어가 있는 상태로 변하기 때문이죠. 이건 디버깅을 하는 사람의 차이입니다. 저는 시나공 디버깅표를 보면서, 디버깅하는 방법만 대충 알고 난 뒤로는 제 스스로 디버깅표를 만들어서 계산값을 구해 봅니다. 저도 첨엔 님이랑 똑같은 문제로 고민했었거든요. 결국 답은 내가 만든 디버깅표가 나에게 맞는 디버깅표라는 거였죠. 아 물론 j만 그런건 아닙니다. 뒤로 넘어갈수록 j와 같이 변수값이 달리 들어가는게 많을 것입니다. 쉽게 해보려면 i j J라는 3가지 변수를 써서 디버깅을 해보세요. 그럼 쉽게 되지요. i=1 일 때 j=-1 이고 J=2가 되지 않겠어요?ㅎㅎ 여기서 소문자 j는 1부터 계속 변하는 변수라면 대문자 J는 모든 계산이 끝난 뒤의 값이죠. 그럼 대문자 J는 -1부터 값이 변하겠죠~? i=1 일때 J=-1 -2 6 24 이렇게요. 도움이 되셨으려나요?
첨부파일
  • 첨부파일 없음