책 내용 질문하기
1권 131p 정보처리산업기사 실기 46번
도서
2021 시나공 정보처리산업기사 실기
페이지
131
조회수
343
작성일
2021-03-11
작성자
탈퇴*원
첨부파일

1권 131p 예상문제 은행에서 46번 문제입니다.

정답지에 for 문의 해석이없습니다. for 문부터끝까지 해석부탁드립니다. ㅠㅠ 그리고 535p에  디버깅이나와있는데 디버깅을 어떻게 보는건지도 알려주셨으면합니다. 

답변
2021-03-12 10:09:40

안녕하세요 길벗수험서 운영팀입니다.

 

첫번째 for문부터..

 

반복 변수 j가 4부터 1씩 감소하면서 0보다 크거나 같은 동안 다음 2문장을 반복 수행합니다. 즉, 4, 3, 2, 1, 0 총 5회 수행하게 되죠.

반복 변수 i가 4부터 1씩 감소하면서 j보다 큰 동안 다음 문장을 반복 수행합니다. 4일 때 0회, 3일때 1회... 0일때 4회 수행해서 총 10회 수행하게 되죠.

 

마지막 for문은 j가 0부터 1씩 증가하면서 5보다 작은 동안 다음 문장을 반복 수행합니다. 배열의 요소들을 차례대로 출력하기 위한 반복문이죠.

 

디버깅표에 대한 자세한 안내는 교재 3권 6섹션(45쪽)을 참고해주세요.

순서도와 비교하며 디버깅표를 안내하고 있지만, 코드와 다를 바가 없습니다.

 

또한 디버깅표는 상황에 따라 for문의 회전에 맞춰 줄을 긋거나, 줄을 긋지 않고 단순히 변화값만을 적는 경우도 있으니 이를 주의해서 확인해주세요.

 

행복한 하루되세요 :)

  • 관리자
    2021-03-12 10:09:40

    안녕하세요 길벗수험서 운영팀입니다.

     

    첫번째 for문부터..

     

    반복 변수 j가 4부터 1씩 감소하면서 0보다 크거나 같은 동안 다음 2문장을 반복 수행합니다. 즉, 4, 3, 2, 1, 0 총 5회 수행하게 되죠.

    반복 변수 i가 4부터 1씩 감소하면서 j보다 큰 동안 다음 문장을 반복 수행합니다. 4일 때 0회, 3일때 1회... 0일때 4회 수행해서 총 10회 수행하게 되죠.

     

    마지막 for문은 j가 0부터 1씩 증가하면서 5보다 작은 동안 다음 문장을 반복 수행합니다. 배열의 요소들을 차례대로 출력하기 위한 반복문이죠.

     

    디버깅표에 대한 자세한 안내는 교재 3권 6섹션(45쪽)을 참고해주세요.

    순서도와 비교하며 디버깅표를 안내하고 있지만, 코드와 다를 바가 없습니다.

     

    또한 디버깅표는 상황에 따라 for문의 회전에 맞춰 줄을 긋거나, 줄을 긋지 않고 단순히 변화값만을 적는 경우도 있으니 이를 주의해서 확인해주세요.

     

    행복한 하루되세요 :)

  • 관리자
    2021-04-13 14:38:58

    안녕하세요 길벗수험서 운영팀입니다.

     

    for문을 단순화 시켜 보죠.

      for(①; ②; ③) 

         ④;

     

    5회 수행한다고 가정했을 때, 다음과 같습니다.

    1회 : ①, ②(조건 참), ④

    2회 : ③, ②(조건 참), ④

    3회 : ③, ②(조건 참), ④

    4회 : ③, ②(조건 참), ④

    5회 : ③, ②(조건 참), ④

    종료 : ③, ②(조건 거짓) <탈출>

     

    자 이 사실을 염두에 두고, 해당 코드에서 i가 4일 때

    for (i = 4; i > j; --i) 

    이 코드를 수행하게 되면,

    1. i에는 4가 저장되고

    2. i > 4의 조건을 체크합니다.

    3. 4 > 4는 거짓이므로 다음 실행 코드를 수행하지 않고 그대로 종료됩니다.

    4. for (j = 4; j >= 0; --j)로 이동하여 j의 값을 1 감소합니다. j = 3

    5. ...말략

     

    이처럼 되는 것이죠.

    때문에 배열에서 [4] 위치의 값은 변화하지 않고 앞의 값들만 계속 더해져

    24 12 6 3 3이 되는 것입니다.

     

    행복한 하루되세요 :)

     

  • *
    2021-04-13 02:29:38

    처음에 i = 4 , j=4 일때 numAry[4]= numAry[4] + numAry[4] 니까 0 0 0 0 6 이되고 그뒤로 쭉계산해보면

     

    0  0  0   6  6

    0  0 12   6  6

    0 24 12   6  6

    48 24 12  6  6

    이렇게 나와요..어디서 틀린거죠 ㅠㅠ 

    디버깅표에 i = 4 , j =4 일땐 아무 일도일어나지않았는데 왜그런건가요?? 

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