책 내용 질문하기
정보처리기사 281p , 290p 질문
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
283
조회수
498
작성일
2019-04-03
작성자
탈퇴*원
첨부파일
<281p> 1. 281p의 C언어 코드 6번에서 i는 data배열의 첨자로 사용된 것이 아닌데 왜 -1부터 시작인가요? (배열의 첨자로 사용된다는것이 정확히 어떤걸 의미하나요) 2. 14번줄에서 j<9-i 가 아니라 j < 8-1인 이유는 뭔가요? 3. 16번줄에서 변수x 대신 n이나 다른 변수를 써도 되나요? <290p> 순서도에서 3번을 보면 left는 자료의 왼쪽 첫 번째위치를, right는 오른쪽의 마지막 위치를 나타내는데 왜 순서도 5번에서 left
답변
2019-04-04 11:05:37

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

 

1. 281p의 C언어 코드 6번에서 i는 data배열의 첨자로 사용된 것이 아닌데 왜 -1부터 시작인가요? 

[답변]

먼저 혼동되는 내용으로 학습에 불편을 드려 사과드립니다.

해당 코드에서 변수 i는 말씀하신대로 배열 첨자로 사용된 것이 아닌 회전수를 의미하며, -1로 초기화될 필요없이 0으로 초기화하여 순서도와 동일하게 진행하는 것이 가능합니다.

이를 적용하기 위해서는 아래와 같이 수정되어야 합니다.

6. i=-1; -> i=0;

14. } while(j<8-i); -> } while(j<9-i);

15. } while(i<8);-> } while(i<9);

 

해당 내용은 즉시 정오표로 등록될 것입니다. 

 

 

(배열의 첨자로 사용된다는것이 정확히 어떤걸 의미하나요)

[답변]

각 배열의 주소값을 표현하는 인수로 사용되는 것을 의미합니다.

i가 배열의 첨자로 사용된다면, a[i], b[i] *(a+i), a[i+1] 와 같이 다양한 활용이 있을 수 있죠.

 

 

2. 14번줄에서 j<9-i 가 아니라 j < 8-1인 이유는 뭔가요? 

[답변]

14번줄은 j<8-i 입니다. 변수 i가 순서도보다 1 감소되어 시작하였으므로, 마지막까지 회전하려면 9-i에서 1감소한 8-i가 되어야 합니다.

1. 답변에서 수정된 내용입니다.

 

 

3. 16번줄에서 변수x 대신 n이나 다른 변수를 써도 되나요?

[답변]

가능합니다.

다만 이미 앞에서 선언된 변수(ex:n)를 사용하시려면 for문에 있는 선언을 위한 자료형 표현(int)을 제거해주셔야 합니다.

for (n=0; n<=9; n++)

이렇게 말이죠.

 

 

<290p>

순서도에서 3번을 보면 left는 자료의 왼쪽 첫 번째위치를, right는 오른쪽의 마지막 위치를 나타내는데 왜 순서도 5번에서 left (Left와.Right가 정확히 무엇을 의미하는지 이해가 안돼요ㅠㅢ)

[답변]

음.. 먼저 우측으로 가면서 교환하는 방식과

좌측으로 가면서 교환하는 방식을 순서도에서 확인해보세요.

 

우측으로 갈 때는

d[i]와 d[i+1]을 교체합니다.

우측으로 가는 첫회전을 보면 i는 1~4까지 [1]-[2], [2]-[3], [3]-[4], [4]-[5] 총 4번을 비교하죠.

이때 시작값 1이 left, 끝값 4가 right-1이 됩니다.

 

좌측으로 갈 때는

d[i-1]과 d[i]를 교체합니다.

좌측으로 가는 두번째 회전을 보면 i는 4~2까지 [3]-[4], [2]-[3], [1]-[2] 총 3번을 비교하죠.

이때 시작값 4는 right, 끝값 2는 left가 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-04-04 11:05:37

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

     

    1. 281p의 C언어 코드 6번에서 i는 data배열의 첨자로 사용된 것이 아닌데 왜 -1부터 시작인가요? 

    [답변]

    먼저 혼동되는 내용으로 학습에 불편을 드려 사과드립니다.

    해당 코드에서 변수 i는 말씀하신대로 배열 첨자로 사용된 것이 아닌 회전수를 의미하며, -1로 초기화될 필요없이 0으로 초기화하여 순서도와 동일하게 진행하는 것이 가능합니다.

    이를 적용하기 위해서는 아래와 같이 수정되어야 합니다.

    6. i=-1; -> i=0;

    14. } while(j<8-i); -> } while(j<9-i);

    15. } while(i<8);-> } while(i<9);

     

    해당 내용은 즉시 정오표로 등록될 것입니다. 

     

     

    (배열의 첨자로 사용된다는것이 정확히 어떤걸 의미하나요)

    [답변]

    각 배열의 주소값을 표현하는 인수로 사용되는 것을 의미합니다.

    i가 배열의 첨자로 사용된다면, a[i], b[i] *(a+i), a[i+1] 와 같이 다양한 활용이 있을 수 있죠.

     

     

    2. 14번줄에서 j<9-i 가 아니라 j < 8-1인 이유는 뭔가요? 

    [답변]

    14번줄은 j<8-i 입니다. 변수 i가 순서도보다 1 감소되어 시작하였으므로, 마지막까지 회전하려면 9-i에서 1감소한 8-i가 되어야 합니다.

    1. 답변에서 수정된 내용입니다.

     

     

    3. 16번줄에서 변수x 대신 n이나 다른 변수를 써도 되나요?

    [답변]

    가능합니다.

    다만 이미 앞에서 선언된 변수(ex:n)를 사용하시려면 for문에 있는 선언을 위한 자료형 표현(int)을 제거해주셔야 합니다.

    for (n=0; n<=9; n++)

    이렇게 말이죠.

     

     

    <290p>

    순서도에서 3번을 보면 left는 자료의 왼쪽 첫 번째위치를, right는 오른쪽의 마지막 위치를 나타내는데 왜 순서도 5번에서 left (Left와.Right가 정확히 무엇을 의미하는지 이해가 안돼요ㅠㅢ)

    [답변]

    음.. 먼저 우측으로 가면서 교환하는 방식과

    좌측으로 가면서 교환하는 방식을 순서도에서 확인해보세요.

     

    우측으로 갈 때는

    d[i]와 d[i+1]을 교체합니다.

    우측으로 가는 첫회전을 보면 i는 1~4까지 [1]-[2], [2]-[3], [3]-[4], [4]-[5] 총 4번을 비교하죠.

    이때 시작값 1이 left, 끝값 4가 right-1이 됩니다.

     

    좌측으로 갈 때는

    d[i-1]과 d[i]를 교체합니다.

    좌측으로 가는 두번째 회전을 보면 i는 4~2까지 [3]-[4], [2]-[3], [1]-[2] 총 3번을 비교하죠.

    이때 시작값 4는 right, 끝값 2는 left가 됩니다.

     

    행복한 하루되세요 :)

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