책 내용 질문하기
222~223페이지 문제와 순서도가 이해가 되지 않아요 ㅠㅠ
도서
2017 시나공 정보처리기능사 실기
페이지
223
조회수
86
작성일
2018-01-08
작성자
탈퇴*원
첨부파일

222~223쪽 순서도를 이해하려고해도 문제도 이해되지 않구, 답지와 해설을 봐도 1번을 제외한 2~5번이 모두 이해가 되질 않습니다.. 강의도 없는터라 너무 힘드네요.. M에 1000을 넣고 디버깅 해봐도 2번이 M%10이면 S(i) = A(k) 가

i가 0이니 어떻게 해야할지도 모르겠고, 왜 나머지를 k에 치환시키는지도 모르겠고, 3번에 M/10이 왜 이것인지도 모르겠고, 4번과 5번도 잘 이해되지 않습니다. 이 문제를 제외한 다른 모든 알고리즘은 잘 이해해서 모두 맞았는데 이번 알고리즘은 문제도 모르겠고, 어떻게 풀어야 할지 자체를 모르겠어요 ㅠㅠ 몇번째 섹션과 비슷한지도 감도 않오구요

도와주세요 ㅠㅠ

답변
2018-01-09 09:18:43

안녕하세요.

만일 1234라는 값이 입력되었다면 0번째 배열부터
A(0) = 4
A(1) = 3
A(2) = 2
A(3) = ,
A(4) = 1
432,1이 저장됩니다.

그런 다음 출력할 때는 마지막 위치에서 부터 A(0)까지 거꾸로 출력합니다.
또한 M%10의 과정은 배열에 값을 저장하기 위한 과정으로

(i+1) % 4에 의해 i가 0일 때 나머지가 1이 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
M/10에 의해 1234 / 10의 몫인 123이 다시 M에 저장되고 나머지인 4는 배열 A(0)에 저장됩니다.
그런 다음 i가 증가합니다.

위로 이동 후 M이 0이 아니므로 반복하여
(i+1) % 4에 의해 i가 1일 때 나머지가 2가 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
M/10에 의해 123 / 10의 몫인 12가 다시 M에 저장되고 나머지인 3은 배열 A(1)에 저장됩니다.
그런 다음 i가 증가합니다.

위로 이동 후 M이 0이 아니므로 다시 반복하여
(i+1) % 4에 의해 i가 2일 때 나머지가 3이 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
M/10에 의해 12 / 10의 몫인 1이 다시 M에 저장되고 나머지인 2는 배열 A(2)에 저장됩니다.
그런 다음 i가 증가합니다.

위로 이동 후 M이 0이 아니므로 다시 반복하여
(i+1) % 4에 의해 i가 3일 때 나머지가 0이 되므로 A(3)에 ,가 저장된 후 i가 증가합니다.
M/10에 의해 1 / 10의 몫인 0이 다시 M에 저장되고 나머지인 1은 배열 A(4)에 저장됩니다.
그런 다음 i가 증가합니다.

위로 이동 후 M이 0이므로 변환 과정을 끝내고 오른쪽의 출력 과정을 수행합니다.
현재 i가 5이므로

i=i-1에 의해 i는 4가 됩니다.

i >= 0 에서 Yes이므로 A(4), 즉 1을 출력합니다.
i=i-1에 의해 i는 3이 됩니다.

반복하여
i >= 0 에서 Yes이므로 A(3), 즉 ,를 출력합니다.
i=i-1에 의해 i는 2가 됩니다.

반복하여
i >= 0 에서 Yes이므로 A(2), 즉 2를 출력합니다.
i=i-1에 의해 i는 1이 됩니다.

반복하여
i >= 0 에서 Yes이므로 A(1), 즉 3을 출력합니다.
i=i-1에 의해 i는 0이 됩니다.

반복하여
i >= 0 에서 Yes이므로 A(0), 즉 4을 출력합니다.
i=i-1에 의해 i는 -1이 됩니다.

반복하여
i >= 0 에서 No이므로 종료됩니다.

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

  • *
    2018-01-09 09:18:43

    안녕하세요.

    만일 1234라는 값이 입력되었다면 0번째 배열부터
    A(0) = 4
    A(1) = 3
    A(2) = 2
    A(3) = ,
    A(4) = 1
    432,1이 저장됩니다.

    그런 다음 출력할 때는 마지막 위치에서 부터 A(0)까지 거꾸로 출력합니다.
    또한 M%10의 과정은 배열에 값을 저장하기 위한 과정으로

    (i+1) % 4에 의해 i가 0일 때 나머지가 1이 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
    M/10에 의해 1234 / 10의 몫인 123이 다시 M에 저장되고 나머지인 4는 배열 A(0)에 저장됩니다.
    그런 다음 i가 증가합니다.

    위로 이동 후 M이 0이 아니므로 반복하여
    (i+1) % 4에 의해 i가 1일 때 나머지가 2가 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
    M/10에 의해 123 / 10의 몫인 12가 다시 M에 저장되고 나머지인 3은 배열 A(1)에 저장됩니다.
    그런 다음 i가 증가합니다.

    위로 이동 후 M이 0이 아니므로 다시 반복하여
    (i+1) % 4에 의해 i가 2일 때 나머지가 3이 되므로 No가 되어 바로 아래쪽으로 처리를 수행합니다.
    M/10에 의해 12 / 10의 몫인 1이 다시 M에 저장되고 나머지인 2는 배열 A(2)에 저장됩니다.
    그런 다음 i가 증가합니다.

    위로 이동 후 M이 0이 아니므로 다시 반복하여
    (i+1) % 4에 의해 i가 3일 때 나머지가 0이 되므로 A(3)에 ,가 저장된 후 i가 증가합니다.
    M/10에 의해 1 / 10의 몫인 0이 다시 M에 저장되고 나머지인 1은 배열 A(4)에 저장됩니다.
    그런 다음 i가 증가합니다.

    위로 이동 후 M이 0이므로 변환 과정을 끝내고 오른쪽의 출력 과정을 수행합니다.
    현재 i가 5이므로

    i=i-1에 의해 i는 4가 됩니다.

    i >= 0 에서 Yes이므로 A(4), 즉 1을 출력합니다.
    i=i-1에 의해 i는 3이 됩니다.

    반복하여
    i >= 0 에서 Yes이므로 A(3), 즉 ,를 출력합니다.
    i=i-1에 의해 i는 2가 됩니다.

    반복하여
    i >= 0 에서 Yes이므로 A(2), 즉 2를 출력합니다.
    i=i-1에 의해 i는 1이 됩니다.

    반복하여
    i >= 0 에서 Yes이므로 A(1), 즉 3을 출력합니다.
    i=i-1에 의해 i는 0이 됩니다.

    반복하여
    i >= 0 에서 Yes이므로 A(0), 즉 4을 출력합니다.
    i=i-1에 의해 i는 -1이 됩니다.

    반복하여
    i >= 0 에서 No이므로 종료됩니다.

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

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