책 내용 질문하기
"
교재 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) = 4A(2) = 3A(3) = 2A(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이므로 종료됩니다.오늘도 즐거운 하루 되세요.