| | | 제 목 | 20강과 21강에서 | | | 글쓴이 | 권우석 | 작성일 | 2005-06-30 | 조회수 | 452 | | | 글공유 | |
| | | 20강에서 최대값 초기화를 for k=1 to 인수 2 앞에 넣는데요.. 그냥 최대값 구하기에 넣으면 안되나요? ex) 변수저장 뒤에 최대값 = 0 if 단가 >= 50 then if 최대값 < 이익포인트+ 거래포인트 then 이렇게요... 왜 for K=1 to 인수2 의 전에 넣는지 궁금해요.
=> 최대값 또는 최소값 초기화하는 위치가 중요합니다. (for문 때문입니다. 초기화가 for문 밖에 있는지, for문 안에 있는지가 중요합니다.)
초기화하는 위치에 따라서 for문 때문에 수행순서가 바뀌므로 결과값은 달라지죠
옛기억을 잠시 떠올려 보시죠...우리가 처음 문법할 때...변수선업,변수저장,변수출력 이라는 기본공식을 이용해서 모든 코딩을 했습니다. 그러다가..,for문, if문, select문 이라는 반복문,조건문이 나오면서 위에서 아래로 수행되었던 순서는 제어문(반복문,조건문)의 위치에 따라서 수행순서가 바뀌었습니다.
for문에 따라서 반복하고 if문에 따라서 선택하여 명령문을 실행했습니다.
그럼..한 예를 가지고 초기화의 위치에 따라서 결과를 비교해 보겠습니다.
예 1) for문 밖에서 초기화
점수=0
for k=1 to 3
점수=점수+k
next k
=> 위 소스 코딩 후 점수를 출력하면 얼마일까요? 1에서 3까지 합인 6이 출력됩니다.
예 2) for문 안에서 초기화
for k=1 to 3
점수=0
점수=점수+k
next k
=> 위 소스 코딩 후 점수를 출력하면 얼마일까요? 3 입니다.
초기화 위치에 따라서 결과는 달라집니다.
예 2에서 마지만 수행과정을 보면 for문에서 k가 3일때 첫번째 명령문인 점수=0 이 수행되므로 점수는 0 을 저장합니다. 그리고 점수=점수+k 를 수행하므로 점수에 0+3 값이 저장되죠....우리가 다루고 있는 문제도 동일합니다. 제어문의 어떤 위치에 초기화 코딩이 들어가는지에 따라서 결과는 달라집니다.
21강에서.. 핵심 변수 선언에서 합계를 일반변수로 취급하라고 그러셨잖아요. 설명 부분이 조금 빨라서... 잘 모르겠어요. 사실은 앞 19강에서도 합계(1000)이라고 넣는 것도.. 억지로 이해할려면 그런것 같은데.. 저는 합계(K)라고 넣고 싶었거든요.. 그런데.. 21강에서는 그냥 합계라고만 하라고 하니까.. 의문이 더 해 가요..
=> 내용이...전화로 답변드려야 할 것 같습니다. 전화드리겠습니다. | |
|
|