책 내용 질문하기
정보처리기능사 실기 모의고사 10회 알고리즘 질문입니다.
도서
[2012] 정보처리기능사 실기
페이지
109
조회수
178
작성일
2013-01-17
작성자
첨부파일

4번답에서 input(j+2)로 하면 로직에러 아니가요.

비교판단문에서 INPUT(J+2)=GRAY(J)로 물어봐야 에러가 안될꺼 같은데요?

입력자료가 01101로 이진수로 들어왔을때 그레이코드로 시뮬을 해보세요..

답변
2013-01-18 09:29:39

안녕하세요.

01101이 들어왔다고 가정하고 설명드리겠습니다.

첫번째 비트가 0이므로 입력된 값은 2진수입니다. 그러므로 그레이코드 변환을 시작합니다.

먼저 2진수를 그레이코드로 변환하는 과정입니다(108쪽 예시 참조).

1. 2진수 첫 비트를 그레이코드 첫번째 비트에 그대로 저장

2. 2진수 첫 번째 비트와 두 번째 비트를 비교하여 같으면 0, 다르면 1을 그레이코드 두 번째 비트로 저장

3. 2진수 두 번째 비트와 세 번째 비트를 비교하여 같으면 0, 다르면 1을 그레이코드 두 번째 비트로 저장

4. 2진수 세 번째 비트와 네 번째 비트를 비교하여 같으면 0, 다르면 1을 그레이코드 두 번째 비트로 저장

순서도에서 오른쪽 반복문으로 이동한 뒤 부터 설명하겠습니다.

GRAY(1) = INPUT(2) -> 입력된 두번째 비트, 즉 실질적인 데이터의 첫 비트를 그대로 변활될 그레이코드 첫 비트로 저장합니다.

INPUT(1)은 그레이인지 2진수인지 판단하는 비트이므로 실질적인 데이터의 첫 비트는 INPUT(2)입니다.

(위 변환 과정 중 1번 과정)

첫 번째 그레이코드는 1

J가 1인 상태로 반복문을 진입하여

2진수의 첫 번째 비트와 두 번째 비트를 비교합니다.

INPUT(J+1) = INPUT(J+2). 즉 INPUT(2) = INPUT(3)을 비교하는 것이죠. 두 비트가 모두 1이므로 결과는 0입니다.

(위 변환 과정 중 2번 과정)

두 번째 그레이코드는 0

J가 2인 상태로 반복문을 다시 실행하여

같은 방법으로 두 번째와 세 번째 비트를 비교합니다.

INPUT(J+1) = INPUT(J+2). 즉 INPUT(3) = INPUT(4)를 비교하는 것이죠. 두 비트가 1과 0으로 서로 다르므로 결과는 1입니다.

(위 변환 과정 중 3번 과정)

세 번째 그레이코드는 1

J가 3인 상태로 반복문을 다시 실행하여

같은 방법으로 세 번째와 네 번째 비트를 비교합니다.

INPUT(J+1) = INPUT(J+2). 즉 INPUT(4) = INPUT(5)를 비교하는 것이죠. 두 비트가 0과 1로 서로 다르므로 결과는 1입니다.

(위 변환 과정 중 4번 과정)

세 번째 그레이코드는 1

반복문을 빠져나와 변환된 그레이코드를 앞에서부터 순서대로 출력합니다.

결과는 1011

위 내용을 참고하여 다시한번 디버깅을 수행해 보세요.

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

"
  • *
    2013-01-18 09:29:39

    안녕하세요.

    01101이 들어왔다고 가정하고 설명드리겠습니다.

    첫번째 비트가 0이므로 입력된 값은 2진수입니다. 그러므로 그레이코드 변환을 시작합니다.

    먼저 2진수를 그레이코드로 변환하는 과정입니다(108쪽 예시 참조).

    1. 2진수 첫 비트를 그레이코드 첫번째 비트에 그대로 저장

    2. 2진수 첫 번째 비트와 두 번째 비트를 비교하여 같으면 0, 다르면 1을 그레이코드 두 번째 비트로 저장

    3. 2진수 두 번째 비트와 세 번째 비트를 비교하여 같으면 0, 다르면 1을 그레이코드 두 번째 비트로 저장

    4. 2진수 세 번째 비트와 네 번째 비트를 비교하여 같으면 0, 다르면 1을 그레이코드 두 번째 비트로 저장

    순서도에서 오른쪽 반복문으로 이동한 뒤 부터 설명하겠습니다.

    GRAY(1) = INPUT(2) -> 입력된 두번째 비트, 즉 실질적인 데이터의 첫 비트를 그대로 변활될 그레이코드 첫 비트로 저장합니다.

    INPUT(1)은 그레이인지 2진수인지 판단하는 비트이므로 실질적인 데이터의 첫 비트는 INPUT(2)입니다.

    (위 변환 과정 중 1번 과정)

    첫 번째 그레이코드는 1

    J가 1인 상태로 반복문을 진입하여

    2진수의 첫 번째 비트와 두 번째 비트를 비교합니다.

    INPUT(J+1) = INPUT(J+2). 즉 INPUT(2) = INPUT(3)을 비교하는 것이죠. 두 비트가 모두 1이므로 결과는 0입니다.

    (위 변환 과정 중 2번 과정)

    두 번째 그레이코드는 0

    J가 2인 상태로 반복문을 다시 실행하여

    같은 방법으로 두 번째와 세 번째 비트를 비교합니다.

    INPUT(J+1) = INPUT(J+2). 즉 INPUT(3) = INPUT(4)를 비교하는 것이죠. 두 비트가 1과 0으로 서로 다르므로 결과는 1입니다.

    (위 변환 과정 중 3번 과정)

    세 번째 그레이코드는 1

    J가 3인 상태로 반복문을 다시 실행하여

    같은 방법으로 세 번째와 네 번째 비트를 비교합니다.

    INPUT(J+1) = INPUT(J+2). 즉 INPUT(4) = INPUT(5)를 비교하는 것이죠. 두 비트가 0과 1로 서로 다르므로 결과는 1입니다.

    (위 변환 과정 중 4번 과정)

    세 번째 그레이코드는 1

    반복문을 빠져나와 변환된 그레이코드를 앞에서부터 순서대로 출력합니다.

    결과는 1011

    위 내용을 참고하여 다시한번 디버깅을 수행해 보세요.

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

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