p45페이지에 있는 알고리즘을 답을 다넣어서 디버깅을 정답과 같이 해보았습니다
제가 한 디버깅은 다음과 같습니다 M=1234
K |
i |
M |
(i+1)%4 |
S(i)=A(K) |
0 |
0 |
1234 |
1 |
S(0)=A(4) |
4 |
1 |
123 |
2 |
S(1)=A(3) |
3 |
2 |
12 |
3 |
S(2)=A(2) |
2 |
3 |
1 |
0 |
S(3)=, |
1 |
4 |
0 |
|
S(4)=A(1) |
|
5 |
|
|
|
|
4 |
|
|
|
|
3 |
|
|
|
|
2 |
|
|
|
|
1 |
|
|
|
|
0 |
|
|
|
1. 답안에 나와 있는 디버깅은 i가 6까지 나와있는데 왜 그렇게 되는지를 모르겠습니다
2. S(0)=A(4) 이 나온다는것은 S배열의 시작이 0부터 시작한다는 뜻인데 앞서 처리조건에서 배열은 0부터 시작한다는 조건 때문에 이런경우에는 배열의 시작이 1이 아닌 0이 될수있는지가 궁금합니다
안녕하세요 길벗수험서 운영팀입니다.
[1]
먼저 오탈로 인해 학습에 불편을 드려 사과드립니다.
확인해 본 결과 변수 i는 5까지 수행되는 것이 맞습니다.
해당 사항은 즉시 수정하여, 정오표로 반영토록 하겠습니다.
[2]
예, 가능합니다.
기능사 시험에서 <처리 조건>으로 언급되는 사항들은 최우선으로 고려하셔야 합니다.
이 문제처럼 몇몇 문제들은 배열의 인자를 0부터 시작하는 경우가 있는데, 이를 고려치 않으면 잘못된 결과가 나올 수 있습니다.
배열의 시작 인자에 대한 언급이 없으면 (1)부터 라는 것.
시작 인자가 0부터라고 언급이 있어야만 (0)부터 라는 것을 염두해 두세요.
(참고로 디버깅표에서 i의 값이 4일 경우 (i+1)%4 의 값이 누락되었으며, i는 마지막 값으로 -1을 가집니다.)
행복한 하루되세요 :)
-
관리자2019-05-09 11:45:35
안녕하세요 길벗수험서 운영팀입니다.
[1]
먼저 오탈로 인해 학습에 불편을 드려 사과드립니다.
확인해 본 결과 변수 i는 5까지 수행되는 것이 맞습니다.
해당 사항은 즉시 수정하여, 정오표로 반영토록 하겠습니다.
[2]
예, 가능합니다.
기능사 시험에서 <처리 조건>으로 언급되는 사항들은 최우선으로 고려하셔야 합니다.
이 문제처럼 몇몇 문제들은 배열의 인자를 0부터 시작하는 경우가 있는데, 이를 고려치 않으면 잘못된 결과가 나올 수 있습니다.
배열의 시작 인자에 대한 언급이 없으면 (1)부터 라는 것.
시작 인자가 0부터라고 언급이 있어야만 (0)부터 라는 것을 염두해 두세요.
(참고로 디버깅표에서 i의 값이 4일 경우 (i+1)%4 의 값이 누락되었으며, i는 마지막 값으로 -1을 가집니다.)
행복한 하루되세요 :)
-
관리자2019-05-10 10:38:40
안녕하세요 길벗수험서 운영팀입니다.
예, 맞습니다.
i가 3으로 조건문 (i+1)%4를 참으로 수행하는 경우 i에 1을 누적하는 연산이 두 번 있어서 (i+1)%4 조건문에 i가 4의 값을 가진채 도달하는 경우가 존재할 수 없게 되네요.
세심히 살펴보지 않고 잘못된 답변을 드린 것에 진심으로 사과드립니다.
이후 답변시 좀 더 주의깊게 답변드릴 수 있도록 하겠습니다.
행복한 하루되세요 :)
-
*2019-05-09 22:58:22
답변 감사합니다
그런데 답변중에
참고로 디버깅표에서 i의 값이 4일 경우 (i+1)%4 의 값이 누락되었으며 라고 답변해주셨는데요
i=4가 되고 그다음 K=M%10, S(i)=A(K), M=M/10을 통해 M은 0의 값을 같게 되고 그다음i=i+1로써 5의 값을 같게 됩니다 그런데 다시 M=0 이라는 구문에서 no 가 아닌 yes방향으로 가기 떄문에 (i+1)%4의값이 0 다음에 1이 나오는것을 이해가 안됩니다 확인 부탁 드리겠습니다