Download presentation
Presentation is loading. Please wait.
Published byΖωτικός Βιτάλης Modified 6년 전
1
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출
2
함수의 필요성과 프로그램 실행흐름 함수의 필요성과 프로그램 실행흐름
3
함수의 장점 02 함수의 장점 반복 실행해야 할 내용을 함수로 만들어 필요할 때마다 호출하여 사용할 수 있다.
프로그램이 모듈(Module)화 되므로 읽기 쉽고, 디버그 및 편집이 용이하다. 프로그램의 기능과 구조를 한 눈에 알아보기 쉽다. 다른 프로그램으로 재사용이 가능하다.
4
여러 가지 기능의 함수 03 여러 가지 기능의 함수
5
함수 정의와 함수 선언 04 함수 정의와 함수 선언
6
함수 호출과 프로그램의 진행 05 함수 호출과 프로그램의 진행
7
【예제 8-1】Ex1.c 02 함수의 선언과 호출 01 #include <stdio.h>
02 int SumTwo(int a, int b); 03 int main(void) 04 { 05 int x = 10, y = 5; 06 int value; value = SumTwo(x, y); 08 09 printf("두 수의 합은 : %d\n", value); 10 return 0; 11 } 12 13 int SumTwo(int a, int b) 14 { int result; result = a + b; return result; 18 } 표준입력 스트림
8
【예제 8-2】Ex2.c 02 함수의 선언과 호출 01 #include <stdio.h>
02 float Average(float x, float y); 03 int main(void) 04 { float num1, num2, result; 06 printf("두 실수형을 입력하세요 : "); 07 scanf("%f %f", &num1, &num2); result = Average(num1, num2); printf("두 실수의 평균 : %f\n", result); return 0; 11 } 표준입력 스트림 12 float Average(float x, float y) 13 { 14 float z; z = (x + y) / 2; return z; 17 }
9
【예제 8-3】Ex3.c 02 함수의 유용성 예제 01 #include <stdio.h>
02 int Intergral(int start, int end); 03 int main(void) 04 { 05 int result = 0, i; 06 07 printf("함수를 사용하지 않고 합을 구함\n"); 08 for(i=1; i<=10; i++) 09 result += i; 10 printf("1부터 10까지의 합은 %d이다.\n ", result); result = 0; 12 for(i=7; i<=17; i++) 13 result += i; 14 printf("7부터 17까지의 합은 %d이다.\n ", result); 15 printf("*************************************\n"); 16 printf("함수를 사용하여 합을 구함\n"); printf("1부터 10까지의 합은 %d이다.\n ", Intergral(1, 10)); 18 printf("7부터 17까지의 합은 %d이다.\n ", Intergral(7, 17)); 19 20 return 0; 21 } 22 int Intergral(int start, int end) 23 { 24 int sum = 0, i; 25 for( i = start; i <= end; i++) 26 sum += i; 27 return sum; 28 }
10
【예제 8-4】Ex4.c 02 함수의 유용성 예제 01 #include <stdio.h>
02 int SumTwo(int a, int b) 03 { int result; 05 result = a + b; return result; 07 } 08 int main(void) 09 { 10 int x = 10, y = 5; 11 int value; value = SumTwo(x, y); printf("두 수의 합은 : %d\n", value); 14 return 0; 16 } 표준입력 스트림
11
【예제 8-5】Ex5.c 02 함수의 다양한 예제 01 #include <stdio.h>
02 void upper_case(char ch); 03 int main(void) 04 { 05 char ch1, ch2; 06 while ( (ch1 = getchar() ) != EOF) { 07 upper_case(ch1); 08 } 09 return 0; 10 } 11 void upper_case(char ch) 12 { 13 char res; 14 if (ch >= 'a' && ch <= 'z') 15 res = ch-32; 16 else 17 res = ch; 18 putchar(res); 19}
12
배열을 인자로 하는 함수의 정의 및 호출 06 배열을 인자로 하는 함수의 정의 및 호출
13
【예제 8-6】Ex6.c 02 함수의 다양한 예제 01 #include <stdio.h>
02 int SumArray(int Array[ ], int Size); 03 int main(void) 04 { 05 int a[ ] = {10, 5, 15, 25, 7}; 06 int Sum; 07 Sum = SumArray(a, 5); 08 printf("배열 원소의 합은 : %d\n", Sum); 09 return 0; 10 } 11 int SumArray(int Array[ ], int Size) 12 { 13 int result = 0, i; 14 for(i=0; i<Size; i++) 15 result += Array[i]; 16 return result; 17} 표준입력 스트림
14
재귀함수와 재귀함수의 예 07 재귀함수와 재귀함수의 예
특정한 함수 내에서 자신의 함수를 다시 호출하는 것을 재귀호출이라 한다. 재귀호출은 해결하려고 하는 N개의 데이터를 가지는 문제가 N-1개의 문제를 해결하면 간단히 해결될 때 사용한다. int factorial(int n) { if(n <= 1) return 1; // 종료 조건 else return n * factorial(n-1); }
15
【예제 8-7】Ex7.c 02 재귀 함수 예제 01 #include <stdio.h>
02 int factorial(int n); 03 int main(void) 04 { 05 int fact_num; 06 fact_num = factorial(10); 07 printf("10 팩토리얼 : %d\n", fact_num); 08 return 0; 09 } 10 int factorial(int n) 11 { 12 if (n <= 1) 13 return (1); 14 else 15 return (n * factorial(n-1)); 16 } 표준입력 스트림
16
【예제 8-8】Ex8.c 02 재귀 함수 예제 01 #include <stdio.h>
02 int sum(int a); 03 int main(void) 04 { int input, s = 0; 06 printf("양의 정수를 입력하세요 : "); 07 scanf("%d", &input); 08 s = sum(input); 09 printf("재귀합수를 이용한 1부터 %d 까지의 합 = %d\n", input, s); 10 return 0; 11 } 12 int sum(int a) 13 { 14 if (a <= 1) 15 return 1; 16 else 17 return a + sum(a-1); 18 }
Similar presentations