Transcript 실습_4

자료구조와 C++ 프로그래밍
한국항공대 소프트웨어학과
실습 4 – 3월 31 ~ 4월 1일
프로그래밍 오류
• 컴파일 오류
– 프로그램 실행 불가. 대부분 문법적 오류에서 발생함.
• 런타임 오류
– 프로그램 실행 중에 발생. HW상의 오류로도 발생 가
능. divide by zero.
• 논리적 오류
– 프로그램 실행 가능. 프로그래머의 의도와 다른 결과
가 나오게 됨.
프로그래밍 오류
• 문법적 오류
– 세미콜론 -> ;
– 중괄호 -> { , }
– 괄 호 -> ( , )
– 비교연산자 ->
-> 클래스 끝에 빠진 경우.
-> 반복문 사용시
-> 여러 겹의 괄호 사용시
== -> =을 하나만 사용하는..
프로그램의 오류
• 논리적 오류
– 반복문 카운트의 문제
– 잘못된 배열 index 사용의 문제
– 논리연산자 사용 오류 -> && , || , !=
– 연산자 우선 순위의 문제
– 예상 밖의 값의 범위 초과 => 예외 처리 필요
연산자의 우선순위 (1 of 4)
Copyright © 2012 Pearson Addison-W
esley. All rights reserved.
2-5
연산자의 우선순위 (2 of 4)
Copyright © 2012 Pearson Addison-W
esley. All rights reserved.
2-6
연산자의 우선순위(3 of 4)
Copyright © 2012 Pearson Addison-W
esley. All rights reserved.
2-7
연산자의 우선순위 (4 of 4)
Copyright © 2012 Pearson Addison-W
esley. All rights reserved.
2-8
Debug
• Debug란?
– 프로그램의 정확성이나 논리적인 오류를 찾아
내는 과정.
– 중단점을 지정하여 실행을 정지하고 단계적으
로 명령문을 수행하면서 메모리에 저장된 값
을 볼 수 있음.
• Debugger
– Debug를 돕는 도구.
탐색 - 이진탐색
• 요구사항
– class Search 생성
– num[6] (private 멤버), n => 생성자에서 초기화
– 6개의 데이터 입력. ( void input() 호출 )
• 0보다 큰 값만 입력 받을 것.
– 오름차순 정렬 ( void BubbleSort() 호출 )
– 정렬 후 출력 ( void output() 호출 )
– int BinarySearch(int x, int left, int right) 생성
• 재귀 함수로 구현할 것.
– void findnum() 생성
• 찾고자 하는 수를 입력받아 BinarySearch를 호출
탐색 - 이진탐색
• 수행
– 3 5 11 7 13 9 를 배열에 입력
– 1 6 17 3 13 에 대해 테스트