저번에 제가
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 에 저장된다고 나와있습니다.
이거 설명좀 부탁드립니다.
안녕하세요.
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
오늘도 즐거운 하루 되세요.
"