책 내용 질문하기
저번에 질문 드렷던 실기와 필기 기출문제 하나
도서
[2011] 정보처리기사 필기
페이지
조회수
974
작성일
2012-02-18
작성자
첨부파일

저번에 제가

2

2 3

2 3 4

2 3 4 5

2 3 4 5 6

2012년 상시 기능사 1회 실기에서

이 알고리즘이 나왓었다고 말씀드렸잖아요~

한번 관리자님께서 주신 메일링 서비스 알고리즘 풀어보니까...

와나진짜... 이렇게 분기되는 건줄은 상상도 못햇습니다. 시험당시엔 절대 그렇게 안나왓는데;;;

근데 해답에 나온대로 답 쓰고 디버깅 돌려보니까 결과는 이렇게 나오더라고요.

결과 ) 0

0 1

0 1 2

0 1 2 3

0 1 2 3 4

이렇게 나오네요??

분명 2012년 상시 기능사 1회 (정보처리기능사) 시험문제지에는

2

2 3

2 3 4

2 3 4 5

2 3 4 5 6

이런결과가 나오도록 하라고 했던거 같은데;;;

(근데 메일링 알고리즘 기출문제랑 상시 기능사 1회 로직이 완전 똑같아요. 100% 똑같아요.)

(진짜 변수하나 안틀리고 똑같이 냈어요.)

제가 디버깅을 잘못해서 결과가

0

0 1

0 1 2

0 1 2 3

0 1 2 3 4

이렇게 나온건가요??

(시나공 관리자님께서 주셧던 메일링 서비스 알고리즘 기출문제에 나온 답 그대로 넣고 디버깅했습니다.)

디버깅 결과좀 봐주세요. 제가 디버깅 제대로 해서 이렇게 나온 것인지 잘못된 것인지..

--------------------------------------------------------------------------------------------

전자계산기구조 기출문제에 관해서인데요.

2011년 정기 기사 3회 (정보처리기사) 필기시험에서 23번 문제에 관한 내용입니다.

23. 3 주소 명령어 연산에서 결과는 어디에 저장되는가?

--------------------------------------------------

구조

op operand1 operand2 operand3

----------------------------------------------------

저는 당연히 3 주소 명령어는 오퍼랜드 3에 저장된다고 생각하고 답지를 보니까..

1. PC (Program Counter) 2. Stack

3. Operand1 4. 임시저장장소

답지에... Operand3 이 없어요;;;;;

근데 답은 3번 Operand1 이래요;;;;

왜 Operand1 이예요..? 시나공 기사 기본서에 오타가 난 것인가요?

연산결과가 주로 Operand1 에 저장되는 것은 2주소 명령어 아니엿나요?

2011 시나공 정보처리기사 기본서 2-77 페이지에 분명 3 주소 명령어 형식에 보면

연산의 결과는 분명 Operand3 에 저장된다고 나와있습니다.

이거 설명좀 부탁드립니다.

답변
2012-02-20 09:44:48

안녕하세요.

1)

1행 1열에 왜 0이 들어갈까요? 2가 들어가는 과정을 설명드리겠습니다. 이후는 계속 반복이니까요.

P는 초기값 0을 가지고 P=P+1에 의해 1이 됩니다.

Q는 초기값 0을 가지고 Q=Q+1에 의해 1이 됩니다.

A(P, Q) = Q+1은

P와 Q가 현재 1이므로

A(1, 1)=2을 의미합니다.

즉 A 배열 1행 1열에는 0이 아니라 2가 기억되면서 시작됩니다.

다시한번 디버깅을 해보세요.

2)

3주소 명령에서는 계산 결과가 주로 Operand 1에 기록됩니다. 여기서 말하는 3rd Operand는 연산을 할 때 순서상 3번째의 Operand 부에 기록된다는 의미로 해석해야 합니다. 즉 아래와 같이 3-주소 명령어가 있을 때 계산 결과가 Operand 3에 기록된다는 의미가 아닙니다.

Op-Code

Operand 1

Operand 2

Operand 3

‘ADD R1 A B’와 같은 3주소 명령어는 ‘R1 ← A + B’로 계산되어 R1에 저장되는데, R1은 순서적인 측면에서 3번째 Operand라는 의미입니다.

ADD

R1

A

B

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

"
  • *
    2012-02-20 09:44:48

    안녕하세요.

    1)

    1행 1열에 왜 0이 들어갈까요? 2가 들어가는 과정을 설명드리겠습니다. 이후는 계속 반복이니까요.

    P는 초기값 0을 가지고 P=P+1에 의해 1이 됩니다.

    Q는 초기값 0을 가지고 Q=Q+1에 의해 1이 됩니다.

    A(P, Q) = Q+1은

    P와 Q가 현재 1이므로

    A(1, 1)=2을 의미합니다.

    즉 A 배열 1행 1열에는 0이 아니라 2가 기억되면서 시작됩니다.

    다시한번 디버깅을 해보세요.

    2)

    3주소 명령에서는 계산 결과가 주로 Operand 1에 기록됩니다. 여기서 말하는 3rd Operand는 연산을 할 때 순서상 3번째의 Operand 부에 기록된다는 의미로 해석해야 합니다. 즉 아래와 같이 3-주소 명령어가 있을 때 계산 결과가 Operand 3에 기록된다는 의미가 아닙니다.

    Op-Code

    Operand 1

    Operand 2

    Operand 3

    ‘ADD R1 A B’와 같은 3주소 명령어는 ‘R1 ← A + B’로 계산되어 R1에 저장되는데, R1은 순서적인 측면에서 3번째 Operand라는 의미입니다.

    ADD

    R1

    A

    B

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

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