책 내용 질문하기
2016시나공 기출문제집
도서
2016 시나공 정보처리기능사 실기
페이지
197
조회수
133
작성일
2016-06-08
작성자
첨부파일
5 6 9 11 부분이 이해가 안가요 1. m이 어떻게 0 이되나요? 2. i+1을 왜 4로 나누나요? 3. K=M%10 왜 이렇게 하나요? 4. M=M/10 이건 왜 이렇게 하나요? 5. M=0일때 왜 i=i-1 인가요? 자세한 답변 부탁드립니다 ㅜ 도무지 답안을 봐도 이해가 안가네요 ㅜㅜ
답변
2016-06-09 09:30:53

안녕하세요.

예를 들어 1234가 입력되었다면 1,234와 같이 천 단위마다 쉼표(,)를 포함해서 출력하는 순서도입니다.

천 단위마다 쉼표는 4자리마다 쉼표(,)를 저장하면 되는데, 이를 위해 4로 나눈 나머지가 0인지를 파악해서 현재 위치가 쉼표(,)를 저장해야 하는 위치인지를 파악하여 처리하는 것이죠.

k = 0, i = 0인 상태로

M에 1234가 입력되었다면

M은 0이 아니므로

(i+1)을 4로 나눈 나머지를 구합니다.

i가 0이므로 1/4의 나머지는 1입니다.

0이 아니므로 다음 과정을 처리합니다.

1234를 10으로 나눈 나머지를 구합니다.

몫이 123이고 나머지는 4입니다. S(i), 즉 S(0)에 4를 저장합니다.

M을 10으로 나눈 몫을 저장합니다. M은 123이 됩니다.

i를 증가시켜 i는 1이 됩니다.

M은 0이 아니므로

(i+1)을 4로 나눈 나머지를 구합니다.

i가 1이므로 2/4의 나머지는 2입니다.

0이 아니므로 다음 과정을 처리합니다.

123을 10으로 나눈 나머지를 구합니다.

몫이 12이고 나머지는 3입니다. S(i), 즉 S(1)에 3을 저장합니다.

M을 10으로 나눈 몫을 저장합니다. M은 12가 됩니다.

i를 증가시켜 i는 2가 됩니다.

M은 0이 아니므로

(i+1)을 4로 나눈 나머지를 구합니다.

i가 2이므로 3/4의 나머지는 3입니다.

0이 아니므로 다음 과정을 처리합니다.

12를 10으로 나눈 나머지를 구합니다.

몫이 1이고 나머지는 2입니다. S(i), 즉 S(2)에 2를 저장합니다.

M을 10으로 나눈 몫을 저장합니다. M은 1이 됩니다.

i를 증가시켜 i는 3이 됩니다.

M은 0이 아니므로

(i+1)을 4로 나눈 나머지를 구합니다.

i가 3이므로 4/4의 나머지는 0입니다.

0이므로 S(i), 즉 S(3)에 ","를 저장합니다.

i를 증가시켜 i는 4가 됩니다.

1을 10으로 나눈 나머지를 구합니다.

몫이 0이고 나머지는 1입니다. S(i), 즉 S(4)에 1을 저장합니다.

M을 1으로 나눈 몫을 저장합니다. M은 0이 됩니다.

i를 증가시켜 i는 5가 됩니다.

몫, 즉 M이 0이므로 ⑤번에서 Yes가 되어 이제 저장된 값을 거꾸로 출력합니다.

현재 1234의 뒤에서부터 값을 한 자리씩 저장하면서 쉽표의 위치도 찾아 저장했으므로

432,1로 저장되어 있습니다.

이를 뒤에서 부터 출력하면 1,234가 됩니다.

위 내용을 참고하여 빈 괄호에 답을 모두 채운 후 차분히 디버깅을 수행하면서 각 변수의 값 변화를 파악해 보세요.

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

  • *
    2016-06-09 09:30:53

    안녕하세요.

    예를 들어 1234가 입력되었다면 1,234와 같이 천 단위마다 쉼표(,)를 포함해서 출력하는 순서도입니다.

    천 단위마다 쉼표는 4자리마다 쉼표(,)를 저장하면 되는데, 이를 위해 4로 나눈 나머지가 0인지를 파악해서 현재 위치가 쉼표(,)를 저장해야 하는 위치인지를 파악하여 처리하는 것이죠.

    k = 0, i = 0인 상태로

    M에 1234가 입력되었다면

    M은 0이 아니므로

    (i+1)을 4로 나눈 나머지를 구합니다.

    i가 0이므로 1/4의 나머지는 1입니다.

    0이 아니므로 다음 과정을 처리합니다.

    1234를 10으로 나눈 나머지를 구합니다.

    몫이 123이고 나머지는 4입니다. S(i), 즉 S(0)에 4를 저장합니다.

    M을 10으로 나눈 몫을 저장합니다. M은 123이 됩니다.

    i를 증가시켜 i는 1이 됩니다.

    M은 0이 아니므로

    (i+1)을 4로 나눈 나머지를 구합니다.

    i가 1이므로 2/4의 나머지는 2입니다.

    0이 아니므로 다음 과정을 처리합니다.

    123을 10으로 나눈 나머지를 구합니다.

    몫이 12이고 나머지는 3입니다. S(i), 즉 S(1)에 3을 저장합니다.

    M을 10으로 나눈 몫을 저장합니다. M은 12가 됩니다.

    i를 증가시켜 i는 2가 됩니다.

    M은 0이 아니므로

    (i+1)을 4로 나눈 나머지를 구합니다.

    i가 2이므로 3/4의 나머지는 3입니다.

    0이 아니므로 다음 과정을 처리합니다.

    12를 10으로 나눈 나머지를 구합니다.

    몫이 1이고 나머지는 2입니다. S(i), 즉 S(2)에 2를 저장합니다.

    M을 10으로 나눈 몫을 저장합니다. M은 1이 됩니다.

    i를 증가시켜 i는 3이 됩니다.

    M은 0이 아니므로

    (i+1)을 4로 나눈 나머지를 구합니다.

    i가 3이므로 4/4의 나머지는 0입니다.

    0이므로 S(i), 즉 S(3)에 ","를 저장합니다.

    i를 증가시켜 i는 4가 됩니다.

    1을 10으로 나눈 나머지를 구합니다.

    몫이 0이고 나머지는 1입니다. S(i), 즉 S(4)에 1을 저장합니다.

    M을 1으로 나눈 몫을 저장합니다. M은 0이 됩니다.

    i를 증가시켜 i는 5가 됩니다.

    몫, 즉 M이 0이므로 ⑤번에서 Yes가 되어 이제 저장된 값을 거꾸로 출력합니다.

    현재 1234의 뒤에서부터 값을 한 자리씩 저장하면서 쉽표의 위치도 찾아 저장했으므로

    432,1로 저장되어 있습니다.

    이를 뒤에서 부터 출력하면 1,234가 됩니다.

    위 내용을 참고하여 빈 괄호에 답을 모두 채운 후 차분히 디버깅을 수행하면서 각 변수의 값 변화를 파악해 보세요.

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

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