상담문의

ㆍ HOME > 상담문의 > 정보처리기사 실기
제 목 교재 p.134쪽 질문이요~
글쓴이  기사친구작성일 2010-10-13 오후 9:54:48조회수 469
글공유
게시글을 twitter로 보내기게시글을 facebook으로 보내기게시글을 Me2Day로 보내기게시글을 요즘으로 보내기

김상구님 안녕하세요?

질문에 답변드립니다.

이 알고리즘에서 사실 array_size 변수는 없어도 상관없습니다.

4번 보기 부분을 subscript = 11 - cnt 로 하여도 상관없습니다.

10진수를 2진수로 변환해서 10번지부터 결과값을 저장하는 방식을 순서도로 표현한 것이지요.

array_size 변수에 초기값을 10으로 주었습니다.

cnt의 초기값은 0으로 주고 1회전에 cnt = cnt + 1을 수행하여 cnt 값은 1이 됩니다.

subscript = (array_size + 1)-cnt 가 되므로 (10+1)-1 이 되므로 subscript 값은 10이 되어

BIN(subscript) = NMG 가 됩니다.

따라서 BIN 배열의 10번지에 NMG값이 저장됩니다.


2회전에서 CNT = CNT + 1 이 실행되어 2가 됩니다.

subscript = (array_size + 1)-cnt 가 연산되면 (10+1)-2 가 연산되어 subscript 변수의 값은

9가 됩니다. 

subscript 변수값의 변화를 잘 보시기 바랍니다.

1회전에 10번지

2회전에 9번지

3회전에 8번지

4회전에 7번지

위와 같이 subscript 값이 변하게 되지요.

따라서 이 순서도는 10진수를 2진수로 변환하기 위해 계속해서 2로 나누어 나온 나머지를

10번지부터 거꾸로 저장하는 방식입니다.

순서도에는 생략되었지만 만약 BIN배열의 2진수 값을 출력한다면

최종 subscript번지부터 10번지까지 출력하도록 하면 되는 겁니다.


예를 들어 10진수 10을 입력받았다면 다음과 같이 돌아가겠지요.


<1회전>

CNT = 1

subscript = 10

10을 2로 나눈 나머지 0 이 10번지에 저장됩니다.


























1번지


2번지


3번지


4번지


5번지


6번지


7번지


8번지


9번지


10번지


 


 


 


 


 


 


 


 


 


0


<2회전>

CNT = 2

subscript = 9

5을 2로 나눈 나머지 1 이 9번지에 저장됩니다.


























1번지


2번지


3번지


4번지


5번지


6번지


7번지


8번지


9번지


10번지


 


 


 


 


 


 


 


 


1 


0


<3회전>

CNT = 3

subscript = 8

2을 2로 나눈 나머지 0 이 8번지에 저장됩니다.


























1번지


2번지


3번지


4번지


5번지


6번지


7번지


8번지


9번지


10번지


 


 


 


 


 


 


 


 0


 1


0


<4회전>

CNT = 4

subscript = 7

1을 2로 나눈 나머지 1 이 10번지에 저장됩니다.


























1번지


2번지


3번지


4번지


5번지


6번지


7번지


8번지


9번지


10번지


 


 


 


 


 


 


 1


0 


1 


0




위 처럼 돌아가게 됩니다.

따라서 2진수를 출력하려면 subscript 번지부터 10번지까지 출력하도록 해야

1 0 1 0 이 출력되어 10을 2진수로 변환한 값이 출력되는 겁니다.

그러나 순서도에서 출력 부분은 생략하였습니다. ^^

위 설명을 차분히 읽어보시고 직접 순서도에서 임의의 10진수를 2진수로 변환하는 과정을

디버깅 해보시기 바랍니다.

열공하시구요.

즐거운 하루되세요. ^^









134쪽 알고리즘에서 4번 문제요.

유수 선생님이 그냥 별 설명없이 4번 답이 array_size라고 하셨는데요.

아무리 생각해봐도 왜 저게 답인지 모르겠네요. 좀 알려주세요~~

댓글쓰기 :
이전글 강사님 ㅠㅠ
다음글 문제가 안 풀려여..ㅠ.ㅠ
고객지원센터

02-556-3650

평일 9:00~18:00

일요일 공휴일 휴무

계좌번호안내

농협은행 724-01-173541

국민은행 633601-04-044665

예금주 (주)조은캠프

상호명 : (주)조은캠프 ㅣ 대표이사 : 이유락 ㅣ 대구광역시 북구 대학로80 경북대학교 IT융합산업빌딩 11층
사업자번호 : 504-81-62507 ㅣ 본사 : 053-954-0030 ㅣ 기술지원 : 070-7019-1144 ㅣ 팩스 : 050-7711-2200 ㅣ 
원격평생교육시설13호 ㅣ 출판사 : 345-2005-00013 ㅣ 통신판매업 : 2005-대구북구-00158 ㅣ 정보보호책임자 : 김창연  
기사친구는 SSL보안방식의 암호화구간을 적용하여 사이트를 안전하게 이용하실 수 있습니다.
COPYRIGHT 2005 (주)조은캠프 ALL RIGHTS RESERVED.관리자에게 메일보내기