책 내용 질문하기
교재 218페이지 모의고사6회 질문이요~
도서
[2012] 정보처리기능사 실기
페이지
218
조회수
322
작성일
2012-07-29
작성자
첨부파일

정답은 찾아 넣겠는데 디버깅이 안됩니다....이해가 안되서 다른분 글도 봤구요..그래도 이해불가;;

다른건 다 이해가 가는데 배열 A에 관한게 이해가 안되요

처리조건에서 A배열은 0부터 시작된다고 나와있고 순서도에서 A배열은 수정 없이 초기화된 상태로

불러서 사용하게 되어 있는데.....

여기서 이해가 안되는게

S(i) = A(K)

이게 왜 풀이처럼 나오는지 이해가 안되네요;;

M이 만약에 1234로 입력이 된다고 하면 처음 K는 4가 되고 A(4)는 3이 들어 있는거 아닌가요?

문제 자체가 S(i) = A(K+1) 이렇게 돼야 K에 입력되는 숫자가 그대로 찍히는거 아니에요?

강의 봤을때 배열에 0부터 시작되는 경우에는 0이 첫번째 배열이라고 배웠는데 왜 이 문제에선

그렇게 적용이 안되는지 설명 좀 해주세요 ㅠㅠ

답변
2012-07-30 09:31:22

안녕하세요.

만일 1234라는 값이 입력되었다면 0번째 배열부터
A(0) = ,
A(1) = 4
A(2) = 3
A(3) = 2
A(4) = ,
A(5) = 1
,432,1이 저장됩니다.
그런 다음 출력할 때는 마지막 위치에서 부터 A(1)까지만 출력합니다, A(0)은 처리 과정상 필요한 형식상의 과정이므로 출력에서는 제외합니다.
그래서 1,234, 가 아니라 1,234 가 출력됩니다.
또한 M%10의 과정은 배열에 값을 저장하기 위한 과정으로
i % 4에 의해 i가 0일 때 나머지가 0이 되므로 A(0)에 ,가 저장된 후 i가 증가합니다.
M/10에 의해 1234 / 10의 몫인 123이 다시 M에 저장되고 나머지인 4는 배열 A(1)에 저장됩니다.
그런 다음 i가 증가합니다.
위로 이동 후 M이 0이 아니므로 반복하여
i % 4에 의해 i가 2일 때 나머지가 2가 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
M/10에 의해 123 / 10의 몫인 12가 다시 M에 저장되고 나머지인 3은 배열 A(2)에 저장됩니다.
그런 다음 i가 증가합니다.
위로 이동 후 M이 0이 아니므로 다시 반복하여
i % 4에 의해 i가 3일 때 나머지가 3이 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
M/10에 의해 12 / 10의 몫인 1이 다시 M에 저장되고 나머지인 2는 배열 A(3)에 저장됩니다.
그런 다음 i가 증가합니다.
위로 이동 후 M이 0이 아니므로 다시 반복하여
i % 4에 의해 i가 4일 때 나머지가 0이 되므로 A(4)에 ,가 저장된 후 i가 증가합니다.
M/10에 의해 1 / 10의 몫인 0이 다시 M에 저장되고 나머지인 1은 배열 A(5)에 저장됩니다.
그런 다음 i가 증가합니다.
위로 이동 후 M이 0이므로 변환 과정을 끝내고 오른쪽의 출력 과정을 수행합니다.
현재 i가 6이므로
i=i-1에 의해 i는 5가 됩니다.
i > 0 에서 Yes이므로 A(5), 즉 1을 출력합니다.
i=i-1에 의해 i는 4가 됩니다.
반복하여
i > 0 에서 Yes이므로 A(4), 즉 ,를 출력합니다.
i=i-1에 의해 i는 3가 됩니다.
반복하여
i > 0 에서 Yes이므로 A(3), 즉 2를 출력합니다.
i=i-1에 의해 i는 2가 됩니다.
반복하여
i > 0 에서 Yes이므로 A(2), 즉 3을 출력합니다.
i=i-1에 의해 i는 1이 됩니다.
반복하여
i > 0 에서 Yes이므로 A(1), 즉 4을 출력합니다.
i=i-1에 의해 i는 0이 됩니다.
반복하여
i > 0 에서 No이므로 종료됩니다.
오늘도 즐거운 하루 되세요.
"
  • *
    2012-07-30 09:31:22

    안녕하세요.

    만일 1234라는 값이 입력되었다면 0번째 배열부터
    A(0) = ,
    A(1) = 4
    A(2) = 3
    A(3) = 2
    A(4) = ,
    A(5) = 1
    ,432,1이 저장됩니다.
    그런 다음 출력할 때는 마지막 위치에서 부터 A(1)까지만 출력합니다, A(0)은 처리 과정상 필요한 형식상의 과정이므로 출력에서는 제외합니다.
    그래서 1,234, 가 아니라 1,234 가 출력됩니다.
    또한 M%10의 과정은 배열에 값을 저장하기 위한 과정으로
    i % 4에 의해 i가 0일 때 나머지가 0이 되므로 A(0)에 ,가 저장된 후 i가 증가합니다.
    M/10에 의해 1234 / 10의 몫인 123이 다시 M에 저장되고 나머지인 4는 배열 A(1)에 저장됩니다.
    그런 다음 i가 증가합니다.
    위로 이동 후 M이 0이 아니므로 반복하여
    i % 4에 의해 i가 2일 때 나머지가 2가 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
    M/10에 의해 123 / 10의 몫인 12가 다시 M에 저장되고 나머지인 3은 배열 A(2)에 저장됩니다.
    그런 다음 i가 증가합니다.
    위로 이동 후 M이 0이 아니므로 다시 반복하여
    i % 4에 의해 i가 3일 때 나머지가 3이 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
    M/10에 의해 12 / 10의 몫인 1이 다시 M에 저장되고 나머지인 2는 배열 A(3)에 저장됩니다.
    그런 다음 i가 증가합니다.
    위로 이동 후 M이 0이 아니므로 다시 반복하여
    i % 4에 의해 i가 4일 때 나머지가 0이 되므로 A(4)에 ,가 저장된 후 i가 증가합니다.
    M/10에 의해 1 / 10의 몫인 0이 다시 M에 저장되고 나머지인 1은 배열 A(5)에 저장됩니다.
    그런 다음 i가 증가합니다.
    위로 이동 후 M이 0이므로 변환 과정을 끝내고 오른쪽의 출력 과정을 수행합니다.
    현재 i가 6이므로
    i=i-1에 의해 i는 5가 됩니다.
    i > 0 에서 Yes이므로 A(5), 즉 1을 출력합니다.
    i=i-1에 의해 i는 4가 됩니다.
    반복하여
    i > 0 에서 Yes이므로 A(4), 즉 ,를 출력합니다.
    i=i-1에 의해 i는 3가 됩니다.
    반복하여
    i > 0 에서 Yes이므로 A(3), 즉 2를 출력합니다.
    i=i-1에 의해 i는 2가 됩니다.
    반복하여
    i > 0 에서 Yes이므로 A(2), 즉 3을 출력합니다.
    i=i-1에 의해 i는 1이 됩니다.
    반복하여
    i > 0 에서 Yes이므로 A(1), 즉 4을 출력합니다.
    i=i-1에 의해 i는 0이 됩니다.
    반복하여
    i > 0 에서 No이므로 종료됩니다.
    오늘도 즐거운 하루 되세요.
    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.