9장 부프로그램 2016. 5. 30 순천향대학교 컴퓨터공학부 하 상 호
목차 부프로그램 개념 매개변수 부프로그램 설계시 고려사항 매개변수 전달 방법 중복 부프로그램 포괄형 부프로그램
부프로그램 개념 추상화 도구 두 가지의 기본적인 추상화 도구 데이터 추상화 프로세스 추상화 사용자가 새로운 데이터 타입을 정의하는 것을 허용하는 수단 프로세스 추상화 문장들의 집합을 부프로그램으로 추상화시키는 수단
부프로그램 개념 부프로그램 사용 이점은? 작성력 향상 프로그램 모듈화 용이 개별 컴파일 가능
부프로그램 특성 각 부프로그램은 단일의 진입점을 갖는다. 호출 프로그램 단위는 피호출 부프로그램의 실행 중에 중단된다. 부프로그램의 실행이 끝났을 때 제어는 항상 호출 프로그램에게 돌아간다.
부프로그램 기본 정의 용도는 정적 타입 검사 C에서, 프로토타입(prototype)이라 불리며 보통 헤더 파일에 위치
부프로그램 개념 예제: 다음 부프로그램에서 기본 정의를 식별하라. 부프로그램정의 부프로그램 호출 부프로그램머리부 매개변수프로파일 프로토콜 형식매개변수 실매개변수 부프로그램선언 int main() { int dis(int, int); ... dist1 = dist(x1, y1); .... } int dist(int a, int b) { int d; d = a - b; if (d <0) d = -d; return d; }
매개변수 부프로그램이 처리하는 데이터 매개변수 => 매개변수화된 계산 지역 변수 비 지역변수 => 부작용 초래, 신뢰성 감소 부프로그램 호출시, 형식 매개변수는 실 매개변수에 바인딩되는데 이를 매개변수 대응(parameter correspondence)이라 한다. 매개변수 대응의 2가지 방법 위치 기반 키워드 기반
매개변수 대응 위치 매개변수(positional parameter)는 매개변수 대응이 단순한 위치에 기반하여 이루어짐 매개변수가 나열된 위치 순서에 기반하여 대응 첫번째 형식 매개변수는 첫번째 실 매개변수에 대응되고, 두번째 형식 매개변수는 두번째 실 매개변수에 대응된다. 안전하고 효과적인 방법
매개변수 대응 키워드 매개변수(keyword parameter)는 실 매개변수에 바인딩되는 형식 매개변수의 이름이 실 매개변수와 함께 지정 실 매개변수의 순서는 임의적이나 형식 매개변수 이름 숙지 필요 예제: in Ada, 위치, 키워드 매개변수 혼합 가능 키워드 매개변수가 나타난 이후에는 모두 키워드 매개변수여야 함 In Python, Sumer(length, sum = My_Sum, list = My_Array)
디폴트 매개변수 디폴트 값(default value)을 갖는 형식 매개변수 예제 언어: C++, Python, PHP, Ada
디폴트 매개변수 C++에서 디폴트 매개변수는 매개변수 리스트의 마지막에 위치 키워드 매개변수를 지원하지 않음
가변개수 매개변수 가변 개수의 매개변수를 허용한다. 예제: C# 매개변수가 동일 타입이면 임의 개수의 전달 가능
부프로그램 유형