공지사항
 일반질문
 대학별 협약 인증
 SNS 협약 인증
 교육질문
  - 컴활필기질문
  - 워드필기질문
  - 컴활1급실기질문전용
  - 컴활2급실기질문전용
  - 워드실기채점 및 질문
  - 사무자동화실기 질문
  - ITQ엑셀 질문
  - ITQ파워포인트 질문
  - ITQ워드 질문
 전화상담게시판
 수강생자유토론방
 합격수기
HOME > 질문/답변 > 일반질문
 
작성일 : 11-08-19 15:43
질문이요~
 글쓴이 : 관리자
조회 : 4,493  
컴활1급 2010년 3회 53번 문제요.

Counter = 0
Sum = 0

Do while Counter<=3           (1)
Counter = Counter + 1          (2)
Sum = Sum + Counter         (3)

Loop

counter 값을 0부터 시작해서 1, 2, 3 차례대로 넣어서
counter 값이 3일 때 sum값을 추출해서 답이 10이잖아요.

맨 처음 (1)의 counter에 0을 넣으면
(2)의 counter는 1이 되고 (3)에서도 1값으로 계산을 해서 sum을 추출하는 과정이잖아요.
그 다음에 (1)의 counter에 1이 들어가고
(2)의 counter는 2가되고 sum을 내고
그 다음 (1)의 counter는 2가 되고
(2)의 counter는 3이 되고 sum이 6이 되죠? --> 네 맞습니다.

여기서 counter 값이 3이 되었으니까 빠져나와서 6으로 보면 안될까요?
(1)에서 정의하는 counter와 (2),(3)에서 정의하는 counter가 다른 건가요?
왜 (1)의 counter가 3일때 sum 값 10이 답인지 잘 모르겠어요ㅠ.ㅠ

프로그램 구현 명령들은 어디에 어떤 조건이 있느냐에 따라 값의 흐름이 자유자제로 바뀝니다.
이 문제는 먼저 조건비교를 하고  개수와 합계를 넣어주지만 만약 개수와 합계를 넣고 조건비교를 한다면 형식은 또 달라지게 되겠죠

회원님의 질문흐름을 제가 정확하게 이해한것인지 모르겠지만
어떤 개수를 누적하면 어떤 결과가 나오는 흐름을 미리 잡아놓고 조건에 부합하지 않는 부분을 그냥 제외한다는 의미로 이해했는데요, 물론 정확하게 그 구분을 할수 있다면 그게 가장 좋은 방법이지만
비전문가들이 그것을 구분하기는 대단히 어렵습니다.
즉 좀 원시적이더라도 저의 풀이처럼 값을 하나씩 넣어 보는 것이 사실 그나마 낳은 방법이죠.

마지막 질문에 왜 카운트가 3일때 누적값이 10인가를 물으셨는데요.
이전카운트 0일때 조건만족 --> 현재카운트 1 합계 1
이전카운트 1일때 조건만족 --> 현재카운트 2 합계 3
이전카운트 2일때 조건만족 --> 현재카운트 3 합계 6
이전카운트 3일때 조건만족 --> 현재카운트 4 합계 10
이전카운트 4일때 조건불만족

즉 비교를 하는 것은 3까지되고 4에서 걸리게 되지만 현재카운터는 4, 현재 누적값은 10으로 이미 4일때까지가 계산된 흐름이라고 할수 있습니다.

쉽지않죠^^ 이런 부분은 여러회 연습을 하셔서 흐름을 이해하시어야만 풀이가 가능합니다.
보통 강의중에 한회차에 1문제정도는 이런풀이가 있고 계속 자세히 설명드리게 되니 참고하세요^^