순천향대 천인국 교수님 자료구조 레포트
- 최초 등록일
- 2008.10.19
- 최종 저작일
- 2007.10
- 7페이지/ 한컴오피스
- 가격 1,500원
소개글
순천향대 천인국 교수님 자료구조 레포트입니다.
천인국 교수님 자료구조 실습 듣는분들 참고하세요
목차
없음
본문내용
. [순차탐색] 다음 프로그램은 순차 탐색 알고리즘을 구현한 것이다. 순차 탐색이란
배열에 저장된 숫자와 찾고자 하는 숫자와 하나씩 순차적으로 비교해서 탐색하는
알고리즘을 의미한다. 다음의 프로그램을 컴파일하고 수행하라.
가) find_max_score() 함수를 수정하지 않은 경우(작은버그 수정 X)
프로그램 소스
실행결과
< 출력결과를 알기위하여 printf() 사용 >
☞ 위의 프로그램은 score[]라는 1차원 배열에 있는 원소들의 최대값을 구하는 프로그램
이다. 이때 최대값을 구하는 함수 find_max_score() 가 정의되어 있는데, 이는
score[] 배열의 몇 번째까지의 원소들의 최대값을 구하는지 정할 수 있다.
실재로, main()에서 find_max_score(5)라고 정의하였는데, 이는 배열 score[0]부터
score[5] 까지의 원소들, 즉 1,2,3,5,6,7 중에서의 최대값을 구하게 된다.
실재로 소스에 printf() 를 추가해서 결과를 출력시킨 결과, 최대값 7이 출력된다.
나) find_max_score() 함수를 수정한 경우(작은버그 수정 O)
☞ 위의 소스는 find_max_score(5)일 경우 실재로 score[] 배열을 5개가 아닌
6개를 비교하여 최대값을 찾게 되는데, 이를 6개가 아닌 5개를 비교하는 것으로
수정을 해야만 한다.
따라서, 소스를 수정하여 main()에서의 find_max_score() 함수가 받는 값의 개수가
실재 score[] 배열과 비교되는 값의 개수가 같게 하기 위하여 다음과 같이 수정한다.
프로그램 소스
실행결과
< 출력결과를 알기위하여 printf() 사용 >
☞ for(i=1;i<=n;i++)을 for(i=1;i<n;i++)로 수정한 결과 실재로 find_max_score(5);
라고 함수를 선언한 개수(5개)와 동일하게 함수 내에서도 배열 score[0]부터
score[4]까지의 총 5개의 원소를 비교하여 최대값을 찾는 것을 알수가 있다.
따라서, 1,2,3,5,6 중에서의 최대값을 구하게 되며, 실재로 printf()를 추가하여
출력해본결과 6이 출력되는 것을 알수가 있다.
☞ 아래의 2~6번은 모두 작은버그를 수정한 소스를 가지고 수행하였다.
2. 위의 프로그램을 한 문장씩 실행하여 보라. Visual C++의 Build / Start Debug /
Step Into 기능을 사용하라. 단축키로 F11을 눌러도 된다. Step Over(F10)와는
어떻게 다른지 조사하라.
☞ Step Into와 Step Over는 소스를 한문장씩 디버깅 할 때 쓰이는 기능으로서,
두 개는 모두 main()에서 디버깅이 시작된다는 점에서 공통적이지만,
두 개의 차이는 아래의 표와 같다.
Step Into(F11)
Step Over(F10)
참고 자료
없음