함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 매개변수 전달 방법
함수의 개념 ◈ 부프로그램 : 독립적인 기능을 가지는 작은 단위의 프로그램 ◈ 부프로그램 : 독립적인 기능을 가지는 작은 단위의 프로그램 ☞ 프로시져(procedure) / ☞ 함수(function) 합계 프로그램 sum() 평균 프로그램 avg() 학점 프로그램 result() 키보더로부터 점수를 입력받는다 sum() 프로그램을 실행한다 avg() 프로그램을 실행한다 result() 프로그램을 실행한다. 합계, 평균, 학점을 출력한다. 성적처리 프로그램 점수 3개 합계 평균 학점
함수의 사용 이유 ◈ 문제의 분해는 대형 프로그램 작성에 필수적이다 ◈ 작은 단위의 프로그램은 작성이 쉽다 ◈ 문제의 분해는 대형 프로그램 작성에 필수적이다 ◈ 작은 단위의 프로그램은 작성이 쉽다 ◈ 디버깅(debugging)이 쉽다 ◈ 유지보수가 용이하다 ◈ 정보 은폐(information hiding)가 가능하다 ◈ 독립적이며 동등한 수준으로 작성하는 것이 바람직하다 ◈ C 언어는 하나이상의 함수들로 구성한다 ◈ 반드시 main()함수가 존재
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 매개변수 전달 방법
함수 정의 printf(“%d + %d = %d \n", 10, 20, 30 ); ☞ 이미 정의되어져 있는 함수 ☞ 이미 정의되어져 있는 함수 #include <stdio.h> void main() { printf("안녕하세요. 테스트중입니다. 안녕히계세요."); } #include <stdio.h> void main() { printf(“%d + %d = %d \n", 10, 20, 30 ); }
함수 정의 f(x) = 3.5 + x // 함수 정의 ….. result = f(2) //위에서 정의한 함수 f(x)를 실행 a = f(4) // a = 7.5
함수 정의 f(x,y) = 3 * x + 2 * y // 함수 정의 ….. result = f(2,3) //위에서 정의한 함수 f(x,y)를 실행 ….. // result = 12 a = f(1,4) // a = 11 …….
함수 정의 헤더(header) 몸체(body) double f(int x) { double result; [리턴값의 자료형] 함수명 ([매개변수목록] ) [매개변수 자료형 선언;] { [함수 내부의 선언]; [명령 문장]; return 리턴값; } 헤더(header) 몸체(body) C 언어로 표현 f(x) = 3.5 + x // 함수 정의 ….. y = f(2) //위에서 정의한 함수 f(x)를 실행 ….. // y = 5.5 a = f(4) // a = 7.5 double f(int x) { double result; result = 3.5 + x; return result; }
함수 정의 헤더(header) 몸체(body) int f(int x, int y) { int result; [리턴값의 자료형] 함수명 ([매개변수목록] ) [매개변수 자료형 선언;] { [함수 내부의 선언]; [명령 문장]; return 리턴값; } 헤더(header) 몸체(body) C 언어로 표현 f(x , y) = 3 * x + 2 * y // 함수 정의 ….. y = f(2,3) //위에서 정의한 함수 f(x)를 실행 ….. // y = 12 a = f(1,4) // a = 11 int f(int x, int y) { int result; result = 3*x + 2*y; return result; }
함수 호출 sum 함수 정의(피호출함수) 실행함수(main) 작성(호출함수) #include <stdio.h> void main() { int su1, su2, su3, su_hap; su1=70; su2=80; su3=90; su_hap = sum(su1, su2, su3); printf(“ 합계 : %d\n”, su_hap); } int sum(int a, int b, int c) { int hap; hap = a + b + c; return hap; } : 가인수, 가매개변수 : 실인수, 실매개변수
함수 정의 및 호출 #1 kkk.c
함수 정의 및 호출 #2 #include <stdio.h> void main() { int su1, su2, su3, su_hap; su1=70; su2=80; su3=90; su_hap = sum(su1, su2, su3); printf("합계 : %d\n", su_hap); } int sum(int a, int b, int c) int hap; hap = a + b+ c; return hap; 호출 정의
함수 선언 int sum(int a, int b, int c); //함수 원형 선언 #include <stdio.h> int sum(int a, int b, int c); //함수 원형 선언 void main() { int su1, su2, su3, su_hap; su1=70; su2=80; su3=90; su_hap = sum(su1, su2, su3); printf("합계 : %d\n", su_hap); } int sum(int a, int b, int c) int hap; hap = a + b+ c; return hap;
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 매개변수 전달 방법
지역 변수
전역 변수 test.c ◈ 독립성 결여됨 ◈ 재사용의 어려움 ◈ 디버깅의 어려움
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문 ◈ 매개변수 전달 방법
실 습 1 강의 슬라이드의 모든 예제를 천천히 다시 읽어보면서 소스 분석, 이해한다. 실 습 1 강의 슬라이드의 모든 예제를 천천히 다시 읽어보면서 소스 분석, 이해한다. 슬라이드 11 번 소스를 입력하여 결과 확인한다.
실 습 2 ◈ 세 수를 입력 받아, 함수를 이용하여 최대값, 최소값을 구하시오. (단, 최대값과 최소값 함수는 따로 작성한다) ◈ 세 수를 입력 받아, 함수를 이용하여 최대값, 최소값을 구하시오. (단, 최대값과 최소값 함수는 따로 작성한다) #include <stdio.h> void main() { int a, b, c, max, min; printf(" 세 정수를 입력하세요 : "); scanf("%d %d %d", &a, &b , &c); max = a; if(b > max) max = b; if(c > max) max = c; min = a; if(b < min) min = b; if(c < min) min = c; printf("\n -----------------------\n\n"); printf(" 최대값 : %d \n\n", max); printf(" 최소값 : %d \n\n", min); printf(" --------------------------\n\n"); } 최대값 구하는 함수를 이용하여 max 값을 구하라. 최소값 구하는 함수를 이용하여 min 값을 구하라.
#include <stdio.h> max_func( ) 함수 정의 …. min_func( ) 함수 정의 …. void main() { int su1, su2, su3, max_su, min_su; printf(" 세 정수를 입력하세요 : "); scanf("%d %d %d", &su1, &su2 , &su3); max_su = max_func(su1,su2,su3); min_su = min_func(su1,su2,su3); printf("\n -----------------------\n\n"); printf(" 최대값 : %d \n\n", max_su); printf(" 최소값 : %d \n\n", min_su); printf(" --------------------------\n\n"); }
실 습 3 ◈ 국어, 영어, 수학점수를 입력 받아, 합계, 평균, 학점을 출력하는 프로그램을 함수를 이용하여 작성하라. ( 단, 합계, 평균, 학점에 대한 함수는 각각 따로 작성한다) 0 ~ 100 사이의 점수 3개가 제대로 입력될 때까지 반복 입력한다.
#include <stdio.h> sum_func() 함수 정의 avg_func() 함수 정의 result_func() 함수 정의 main() { int kor, eng, math, sum; float avg; char result; while(1) { printf("국어, 영어, 수학의 성적점수를 입력하세요 : "); scanf("%d %d %d", &kor, &eng, &math); 제대로 입력되었는지 확인하고 빠져나간다…. } sum = sum_func(kor,eng,math) ; avg = avg_func(sum) ; result = result_func(avg) ; 합계, 평균, 학점을 출력한다…..