책 내용 질문하기
질문이요
도서
2016 시나공 정보처리기사 실기
페이지
245
조회수
110
작성일
2016-04-05
작성자
첨부파일

245쪽 마지막에 있는 반복문에서 i=i-1 이 부분이 이해가 안갑니다.

설명 부탁드려요!

답변
2016-04-06 09:07:22

안녕하세요.

문제를 보면

반 배정을 하고 나서 다음 반 배정은 4명을 건너뛴 다음에 배정을 하는데, 건너뛰는 4명 안에 이미 반이 배정된 학생이 있다면 건너뛰는 4명에 포함되지 않아야 합니다.

마지막 반복문은 i가 1부터 4까지 1씩 증가하면서 4명을 건너뛰는데, 혹 그 4명 가운데 반이 배정된 학생이 있다면

제외해야 하는 과정이 i = i - 1입니다.

i가 1인 상태로, 즉 1명을 건너뛴 상태로

A(NMG) <> 0 을 확인합니다. A(NMG), 즉 현재 배열의 값이 0이 아니면 이미 반이 배정되었으므로

1명을 건너뛴 i를 다시 -1 하여 4명에서 배제하는 것이죠.

이렇게 진행하다 보면 뒤로 갈 수록 건너뛰는 4명에서 배제되는 경우가 상당히 많아지므로 디버깅이 점점 복잡해 집니다.

그러니 배정되는 경우와 건너뛰는 경우를 구분할 수 있도록 색이 다른 펜으로 체크하면서 꼼꼼히 디버깅을 수행해야 합니다.

오늘도 즐거운 하루 되세요.

  • *
    2016-04-06 09:07:22

    안녕하세요.

    문제를 보면

    반 배정을 하고 나서 다음 반 배정은 4명을 건너뛴 다음에 배정을 하는데, 건너뛰는 4명 안에 이미 반이 배정된 학생이 있다면 건너뛰는 4명에 포함되지 않아야 합니다.

    마지막 반복문은 i가 1부터 4까지 1씩 증가하면서 4명을 건너뛰는데, 혹 그 4명 가운데 반이 배정된 학생이 있다면

    제외해야 하는 과정이 i = i - 1입니다.

    i가 1인 상태로, 즉 1명을 건너뛴 상태로

    A(NMG) <> 0 을 확인합니다. A(NMG), 즉 현재 배열의 값이 0이 아니면 이미 반이 배정되었으므로

    1명을 건너뛴 i를 다시 -1 하여 4명에서 배제하는 것이죠.

    이렇게 진행하다 보면 뒤로 갈 수록 건너뛰는 4명에서 배제되는 경우가 상당히 많아지므로 디버깅이 점점 복잡해 집니다.

    그러니 배정되는 경우와 건너뛰는 경우를 구분할 수 있도록 색이 다른 펜으로 체크하면서 꼼꼼히 디버깅을 수행해야 합니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.