쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)

Slides:



Advertisements
Similar presentations
제6장 조건문.
Advertisements

프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
배열, 포인터 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
C++ Espresso 제2장 제어문과 함수.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
C 프로그래밍.
누구나 즐기는 C언어 콘서트 제7장 함수.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
2007 1학기 10 함수 활용.
C 6장. 함수 #include <stdio.h> int main(void) { int num;
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
쉽게 풀어쓴 C언어 Express 제9장 함수와 변수 C Express.
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
-Part3- 제5장 전처리기와 파일 분할 컴파일
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
5주차: Functions in C.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
Chapter 10 함수 기본.
제2장 데이터형과 표준 입출력문 문봉근.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
쉽게 풀어쓴 C언어 Express 제15장 전처리 및 비트연산 C Express Slide 1 (of 29)
함수와 변수 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
CHAP 2:순환.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Chapter 11. 배열과 포인터.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제7장 반복문이란 무엇인가.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
어서와 C언어는 처음이지 제16장.
argc, argv 의 사용방법 #include <stdio.h>
어서와 C언어는 처음이지 제23장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
어서와 C언어는 처음이지 제22장.
프로그래밍 기법 최적화 프로그래밍.
Presentation transcript:

쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)

모듈의 개념 모듈(module) 독립되어 있는 프로그램의 일부분 모듈러 프로그래밍 모듈 개념을 사용하는 프로그래밍 기법 모듈러 프로그래밍의 장점 각 모듈들은 독자적으로 개발 가능 다른 모듈과 독립적으로 변경 가능 유지 보수가 쉬워진다. 모듈의 재사용 가능 C에서는 모듈==함수 Slide 2 (of 26)

함수의 개념 함수(function): 특정한 작업을 수행하는 독립적인 부분 함수 호출(function call): 함수를 호출하여 사용하는 것 함수는 입력을 받으며 출력을 생성한다. Slide 3 (of 26)

함수들의 연결 프로그램은 여러 개의 함수들로 이루어진다. 함수 호출을 통하여 서로 서로 연결된다. 제일 먼저 호출되는 함수는 main()이다. Slide 4 (of 26)

함수의 종류 Slide 5 (of 26)

함수의 정의 반환형(return type) 함수 헤더(function header) 함수 몸체(function body) Slide 6 (of 26)

함수의 구조 Slide 7 (of 26)

예제 #1 정수의 제곱값을 계산하는 함수 반환값: int 함수 이름: square 매개 변수: int n {   return(n*n); } Slide 8 (of 26)

예제 #2 두개의 정수중에서 큰 수를 계산하는 함수 반환값: int 함수 이름: get_max 매개 변수: int x, int y int get_max(int x, int y) {   if( x > y ) return(x);   else return(y); } Slide 9 (of 26)

예제 #3 정수의 절대값을 계산하는 함수 반환값: int 함수 이름: absolute 매개 변수: int x {   if( x > 0 )         return x;    else         return -x; } Slide 10 (of 26)

함수 호출과 반환 함수 호출(function call): 함수를 사용하기 위하여 함수의 이름을 적어주는 것 함수안의 문장들이 순차적으로 실행된다. 문장의 실행이 끝나면 호출한 위치로 되돌아 간다. 결과값을 전달할 수 있다. Slide 11 (of 26)

인수와 매개 변수 인수(argument): 실인수, 실매개 변수라고도 한다. 매개 변수(parameter): 형식 인수, 형식 매개 변수라고도 한다. #include <stdio.h> int add(int x, int y) {         return (x + y); } int main(void)         // 2와 3이 add()의 인수가 된다.         add(2, 3);          // 5와 6이 add()의 인수가 된다.         add(5, 6);          return 0; Slide 12 (of 26)

반환값 반환값(return value): 호출된 함수가 호출한 곳으로 작업의 결과값을 전달하는 것 인수는 여러 개가 가능하나 반환값은 하나만 가능 return 0; return(0); return x; return x+y; return x*x+2*x+1; Slide 13 (of 26)

함수 원형 함수 원형(function prototyping): 컴파일러에게 함수에 대하여 미리 알리는 것 함수 원형 // 정수의 제곱을 계산하는 함수 예제 #include <stdio.h> int square(int n);                          // 함수 원형 int main(void) {         int i, result;         for(i = 0; i < 5; i++)         {                 result = square(i);         // 함수 호출                 printf("%d \n", result);         }         return 0; } int square(int n)                           // 함수 정의         return(n * n); 함수 원형 Slide 14 (of 26)

함수 원형을 사용하지 않는 예제 #include <stdio.h> // 함수 정의 int compute_sum(int n) {         int i;         int result = 0;         for(i = 1; i <= n; i++)                 result += i;         return result; } int main(void)         int n, sum;         printf("정수를 입력하시오: ");         scanf("%d", &n);         sum = compute_sum(n);               // 함수 사용         printf("1부터 %d까지의 합은 %d입니다. \n", n, sum); return 0; 정수를 입력하시오: 10 1부터 10까지의 합은 55입니다. Slide 15 (of 26)

함수 원형과 헤더 파일 보통은 헤더 파일에 함수 원형이 선언되어 있음 Slide 16 (of 26)

다중 소스 프로그램 함수 원형 정의는 헤더 파일에 들어 있고 여러 파일에서 헤더 파일을 포함 Slide 17 (of 26)

다중 소스 프로그램 예제 common.h main.c // 헤더 파일 #include <stdio.h> #define MAX_INPUT  30 int get_integer(void); int combination(int n, int r); int factorial(int n); main.c // 수학적인 조합값을 구하는 예제 #include "common.h" int main(void) {         int a, b;         a = get_integer();         b = get_integer();         printf("C(%d, %d) = %d \n", a, b, combination(a, b));         return 0; } Slide 18 (of 26)

다중 소스 프로그램 예제 combination.c factorial.c // 수학적인 조합값을 계산 #include "common.h" int combination(int n, int r) {         return (factorial(n)/(factorial(r) * factorial(n-r))); } factorial.c // 팩토리얼 계산 #include "common.h" int factorial(int n) {         int i;         long result = 1;         for(i = 1; i <= n; i++)                 result *= i;         // result = result * i         return result; } Slide 19 (of 26)

다중 소스 프로그램 예제 get_input.c // 사용자로부터 정수를 입력받는 함수 정의 #include "common.h" int get_integer(void) {         int n;         printf("정수를 입력하시오: ");         scanf("%d", &n);         return n; } Slide 20 (of 26)

라이브러리 함수 라이브러리 함수(library function): 컴파일러에서 제공하는 함수 표준 입출력 수학 연산 문자열 처리 시간 처리 오류 처리 데이터 검색과 정렬 Slide 21 (of 26)

수학 라이브러리 함수 Slide 22 (of 26)

예제 // 삼각 함수 라이브러리 #include <math.h> sin( 1.570796 ) = 1.000000 #include <stdio.h> int main( void ) {         double pi = 3.1415926535;         double x, y;         x = pi / 2;         y = sin( x );         printf( "sin( %f ) = %f\n", x, y );         y = sinh( x );         printf( "sinh( %f ) = %f\n",x, y );         y = cos( x );         printf( "cos( %f ) = %f\n", x, y );         y = cosh( x );         printf( "cosh( %f ) = %f\n",x, y ); } sin( 1.570796 ) = 1.000000 sinh( 1.570796 ) = 2.301299 cos( 1.570796 ) = 0.000000 cosh( 1.570796 ) = 2.509178 Slide 23 (of 26)

난수 생성 라이브러리 함수 rand() 난수를 생성하는 함수 0부터 RAND_MAX까지의 난수를 생성 // 난수 생성 프로그램 #include <stdlib.h> #include <stdio.h> #include <time.h> // n개의 난수를 화면에 출력한다. void get_random( int n ) {         int i;         for( i = 0; i < n; i++ )                 printf( "  %6d\n", rand() ); } int main( void )         // 일반적으로 난수 발생기의 시드(seed)를 현재 시간으로 설정한다.         // 현재 시간은 수행할 때마다 달라지기 때문이다.         srand( (unsigned)time( NULL ) );         get_random( 10 );         return 0;    21783    14153     4693    13117    21900    19957    15212    20710     4357    16495 Slide 24 (of 26)

함수를 사용하는 이유 소스 코드의 중복을 없애준다. 한번 만들어진 함수를 여러 번 호출하여 사용할 수 있다. 한번 작성된 함수를 다른 프로그램에서도 사용할 수 있다. 복잡한 문제를 단순한 부분으로 분해할 수 있다. void print_heading(void) {   printf("*************************************");   printf("  NAME    ADDRESS      PHONE         "); } int main(void)   // 출력이 필요한 위치 #1   print_heading();    ...   // 출력이 필요한 위치 #2 int main(void) { ... read_list(); sort_list(); print_list(); } Slide 25 (of 26)

Q & A Slide 26 (of 26)