책 내용 질문하기
227페이지 알고리즘 질문 / 236페이지 / 247페이지
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
227
조회수
53
작성일
2018-09-22
작성자
탈퇴*원
첨부파일

1.

5번 괄호부분에

B[J] = ( ⑤ ) 라고 되어있고 정답에는 1-A[J]라고 되어있는데

어차피 A[J]와 B[J]가 보수형태이기만 하면 되는거니까

A[J] + 1 도 맞지 않나요>?? 궁금합니다

2.

236페이지는 괄호 4번에 INPUT[i+2]가 아니라 INPUT[i]가 아닌가요?>

1번에서 CONT[1] = INPUT[2]로 선언하면서

기존에 INPUT첫번째비트는 사라지고 INPUT[2]부터 CNT[1]에 들어갑니다.

근데

i+1번째와 i+2번째를 xor연산하면 CONT의 i+1번째가 아니라 i+2번째가 나오는거 아닌가요??

1 0 1 0 1 <- INPUT이라고 했을때

1 2 3 4 5 <- 순서번호(i)

X 0 1 0 1 <- CONT 아닌가요??

1 2 3 4 <- 순서번호(i)

이렇게 바뀌는게 아닌건가요??

3.

247페이지 2번 3번 괄호가 각각

Z - 2와 A[J] = Z 인데

2번에 Z대신 X[J] + Y[J]-2 이나, 3번에 A[J] = Z대신 A[J] = X[J] + Y[J] 는 안되나요??

답변
2018-09-27 16:48:58

안녕하세요. 길벗 수험서 운영팀입니다.

1. A[J] + 1 도 맞지 않나요>??

[답변]

안됩니다.

A[J]의 값이 0일 때는 문제가 없으나, 1일 때 문제가 됩니다.

A[J]의 값이 1일 때 1을 더하게 되면, 2가 저장되어 2진수가 아닌 값이 들어가게 되어 잘못된 결과가 출력됩니다.

2. i+1번째와 i+2번째를 xor연산하면 CONT의 i+1번째가 아니라 i+2번째가 나오는거 아닌가요??

[답변]

아닙니다.

INPUT[5]의 첫번째 비트가 연산할 값이 아닌 해당 자료를 이진수로 바꿀지 그레이 코드로 바꿀지 결정하는 인자임을 고려하셔야 합니다.

실제 연산에 들어가는 2진수는 INPUT[2]~INPUT[5]가 되는 것이지요.

이것을 234쪽의 해설에 대입해보면, 입력된 값이 INPUT[2]=1, INPUT[3]=0, INPUT[4]=1, INPUT[5]=1이 됩니다.

CONT[1]=INPUT[2]를 넣었으니, 다음 연산은 INPUT[2]와 INPUT[3]을 비교하여 CONT[2]에 넣는 연산이 나와야겠네요.

이것을 순서도에 대입해보면, 반복문에서 i는 1부터 시작하니 INPUT[i+1]=INPUT[i+2]가 되는 것이 맞습니다.

3. 2번에 Z대신 X[J] + Y[J]-2 이나, 3번에 A[J] = Z대신 A[J] = X[J] + Y[J] 는 안되나요??

[답변]

X[J] + Y[J]-2의 경우는 안됩니다.

위에서 Z의 값은 X[J]+Y[J]+C를 저장합니다. 자리올림수가 포함되어 있는 값이 되어야 하므로 C 값이 빠진 X[J]+Y[J]는 될 수 없습니다. +C를 추가한다고 하여도 C는 이미 다음 올림수를 저장하고 있기 때문에 이전 저장수를 더하여 갖고 있는 변수 Z가 반드시 쓰여야 합니다.

X[J] + Y[J] 또한 위의 경우와 마찬가지로 안됩니다.

이전 계산에서 가져온 자리올림수가 제외되었기 때문입니다.

행복한 하루되세요.^^

  • *
    2018-09-27 16:48:58

    안녕하세요. 길벗 수험서 운영팀입니다.

    1. A[J] + 1 도 맞지 않나요>??

    [답변]

    안됩니다.

    A[J]의 값이 0일 때는 문제가 없으나, 1일 때 문제가 됩니다.

    A[J]의 값이 1일 때 1을 더하게 되면, 2가 저장되어 2진수가 아닌 값이 들어가게 되어 잘못된 결과가 출력됩니다.

    2. i+1번째와 i+2번째를 xor연산하면 CONT의 i+1번째가 아니라 i+2번째가 나오는거 아닌가요??

    [답변]

    아닙니다.

    INPUT[5]의 첫번째 비트가 연산할 값이 아닌 해당 자료를 이진수로 바꿀지 그레이 코드로 바꿀지 결정하는 인자임을 고려하셔야 합니다.

    실제 연산에 들어가는 2진수는 INPUT[2]~INPUT[5]가 되는 것이지요.

    이것을 234쪽의 해설에 대입해보면, 입력된 값이 INPUT[2]=1, INPUT[3]=0, INPUT[4]=1, INPUT[5]=1이 됩니다.

    CONT[1]=INPUT[2]를 넣었으니, 다음 연산은 INPUT[2]와 INPUT[3]을 비교하여 CONT[2]에 넣는 연산이 나와야겠네요.

    이것을 순서도에 대입해보면, 반복문에서 i는 1부터 시작하니 INPUT[i+1]=INPUT[i+2]가 되는 것이 맞습니다.

    3. 2번에 Z대신 X[J] + Y[J]-2 이나, 3번에 A[J] = Z대신 A[J] = X[J] + Y[J] 는 안되나요??

    [답변]

    X[J] + Y[J]-2의 경우는 안됩니다.

    위에서 Z의 값은 X[J]+Y[J]+C를 저장합니다. 자리올림수가 포함되어 있는 값이 되어야 하므로 C 값이 빠진 X[J]+Y[J]는 될 수 없습니다. +C를 추가한다고 하여도 C는 이미 다음 올림수를 저장하고 있기 때문에 이전 저장수를 더하여 갖고 있는 변수 Z가 반드시 쓰여야 합니다.

    X[J] + Y[J] 또한 위의 경우와 마찬가지로 안됩니다.

    이전 계산에서 가져온 자리올림수가 제외되었기 때문입니다.

    행복한 하루되세요.^^

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