Presentation is loading. Please wait.

Presentation is loading. Please wait.

함수 강의자료 및 기말도우미.

Similar presentations


Presentation on theme: "함수 강의자료 및 기말도우미."— Presentation transcript:

1 함수 강의자료 및 기말도우미

2 chapter 10 << 함수 하나의 복잡하고 큰 문제는 여러 개의 작은 문제로 나누어 생각하는 것이 효율적인 문제 해결 방법이다. C 프로그램은 하나 이상의 함수로 구성된다. 또한 하나의 함수는 여러 개의 블록으로 구성할 수도 있고, 그 블록은 다시 여러 블록들을 포함 할 수도 있다. 이번 장에서는 일반적으로 함수라고 지칭하는 사용자 정의 함수를 정의하는 방법에 대하여 소개한다. 종이위에 쓰는 C 프로그래밍

3 학습 목표 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 재귀호출
Learning Objectives Explain the Important Role of Telecommunications and why Managers have to know Telecommunications Describe the components and functions of a Telecommunications system and in particular their value-added to business Describe different Types of Networks: LAN, WAN, VAN and the Internet Discuss important business applications of Telecommunications technology

4 1.1 C 언어와 구조적 프로그래밍 구조적 방식의 기본 요소는 함수 C 언어는 구조적 프로그래밍 방식의 대표적인 언어
C언어는 함수(function)의 집합으로 구성 프로그램 작성 시 함수를 여러 개의 파일로 나누어 구성 가능 종이위에 쓰는 C 프로그래밍

5 main()함수의 형태 함수가 값을 반환하는 유무에 따라 정수형을 반환하는 경우 int main( ) { int x; ……
return(x); } 반환 값이 없는 경우 void main( ) { int x; return 0; } 반환 형이 없는 경우 는 정수형으로 간주 main( ) { int x; …… [ return 0;] } ANSI, ISO 사용규격 int main( void) { int x; …… } 종이위에 쓰는 C 프로그래밍

6 1.2 표준 라이브러리 함수와 사용자 정의 함수 X 재료를 f 기계에 넣으면 y 라는 제품이 나옴
C 언어에서는 명령을 함수로 데이터를 변수로 표현 함수는 y=f(x) 에 비유 X 재료를 f 기계에 넣으면 y 라는 제품이 나옴 기본적으로 한 개의 main()함수를 갖는다. 프로그램을 기능별로(모듈, 함수) 작성. main() 함수에서 해당 함수를 호출(call)하여 함수를 사용. winmain(Windows) 함수는 OS에서 호출 함수의 종류 : 표준함수, 사용자 정의 함수 표준함수는 컴파일러에 의해 기본적으로 제공되는 함수 사용자 정의 함수는 사용자가 직접 작성하는 함수 종이위에 쓰는 C 프로그래밍

7 간단한 함수 프로그램1 - 성명학번 출력 #include<stdio.h> void name(); void juso(); main() { name(); //함수호출 juso(); //함수호출로 //실행제어이동 } void name() { printf("************************\n"); printf(“ Chosun University\n"); } void juso() printf("광주시 서석동 \n"); }

8 라이브러리 함수(표준 함수, 내장함수) 모든 라이브러리 함수는 표준 헤더 파일(*.h)에 정의 표준 함수 사용 예
컴파일러에 라이브러리 형태로 제작되어 지원하는 함수 모든 라이브러리 함수는 표준 헤더 파일(*.h)에 정의 표준 함수 사용 예 관련 헤더 파일 입출력 함수 printf(), getchar(), scanf() #include <stdio.h> 난수 관련 함수 rand(), srand() 산술 연산 함수 sqrt(), sin(), abs() 문자열 처리 함수 strcmp(), strcpy(), strlen() 시간 관련 함수 clock(), time() 메모리 관리 함수 free(), malloc() #include <stdlib.h> #include <math.h> #include <string.h> #include <time.h> C 언어에서는 어떤 기능(문자를 화면에 출력, 두수의 사칙연산, 키보드로 부터 문자 입력등)을 실행하는 명령어가 별도로 존재하지 않는다. 그러므로 어떤 기능을 구현하기 위하여 그 기능을 실행하는 프로그램을 배정문(a=4) 및 제어문(if, while문등)을 이용하여 작성해야 하는데, 이와 같이 특정한 기능을 실행하는 프로그램의 집합을 함수라 한다. 그러므로 C 언어로 작성하는 프로그램은 특정한 기능을 실행하는 함수들, 배정문 및 제어문으로 구성된다. 따라서 C언어에서는 반드시 하나 이상의 함수가 존재해야 하며, 반드시 존재해야 하는 함수의 이름은 main()함수이다. 즉, 프로그램이 동작할때 처리되는 순서는 main()함수의 첫번째 줄부터 실행된다. 함수의 종류는 라이브러리 함수 및 사용자가 작성한 함수로 구분된다. C 언어는 특정한 기능을 수행하는 명령어가 없으므로 사용자가 기본적인 기능(문자 입출력 기능, 문자열처리 기능등)을 함수로 직접 만들어 프로그램을 작성한다는 것은 너무 많은 노력 및 시간을 요구한다. 따라서 컴파일러 공급업자가 기본적인 기능을 실행하는 함수를 만들어 사용자에게 공급하는데 이를 라이브러리 함수라 한다. 라이브러리 함수는 헤더화일(화일네임.h)에 포함되어 있으며 어떤 특정한 기능을 수행하는 함수를 이용할 때 관련된 헤더화일을 읽어야 하며, 헤더화일을 읽는 방법은 #include 헤더화일 이름; 을 프로그램 맨 앞에 위치시킨다. 또한 라이브러리 함수는 공급자가 이미 만들어 놓은 함수이므로 반드시 미리 정해진 인수를 사용해야 한다. 앞절에서 사용한 printf() 함수가 대표적인 라이브러리 함수이며, 이는 stdio.h 헤더화일에 포함되어 있고, 화면에 데이타를 출력하는 기능을 수행하며 이 함수를 사용하기 위하여 프로그램 앞줄에서 #include 명령어를 사용하여 stdio.h 헤더 화일을 읽어 드리면 프로그램에서 printf()함수를 사용할 수 있다. #include <malloc.h> 종이위에 쓰는 C 프로그래밍

9 2. 사용자 정의 함수 사용자 함수 구성 요소 함수의 연산 결과를 반환하는 함수의 자료형 함수 명칭을 나타내는 함수명
2. 사용자 정의 함수 사용자가 직접 작성한 함수 사용자 함수 구성 요소 함수의 연산 결과를 반환하는 함수의 자료형 함수 명칭을 나타내는 함수명 함수로 전달될 데이터의 변수인 매개변수 리스트 함수 내부에 필요한 변수 선언 각종 명령문을 수행할 함수의 본체 함수를 호출한 곳으로 값을 되돌려 주는 return 문 종이위에 쓰는 C 프로그래밍

10 2.1 함수의 형식 모든 함수는 사용(호출)전에 선언 또는 정의 함수의 3가지 요건 함수선언, 함수호출, 함수정의 형식 1
함수선언, 함수호출, 함수정의 형식 1 사용 예 자료형 함수명( 매개변수) { 몸체 (하는 일들)  함수 정의 } main() 몸체 ;  함수 호출 int sum( int a , int b) { int total ; total = a + b ; return result ; main( ) sum( ) ; } 종이위에 쓰는 C 프로그래밍

11 간단한 함수 프로그램 – 형식 1 #include<stdio.h> void line(void) {
printf("=========================\n"); } int main(void) { line(); printf(" Chosun University\n"); return 0; }

12 2.1 함수의 형식 모든 함수는 사용(호출)전에 선언 또는 정의 함수의 3가지 요건 함수선언, 함수호출, 함수정의 ② 형식2
함수선언, 함수호출, 함수정의 ② 형식2 ② 사용 예 #include<stdio.h> int sum( int, int); main( ) { sum( ) ; } int sum( int a , int b) int total ; total = a + b ; return result ; 프로토타입  함수 선언 main() { 몸체  함수 호출 함수명( ) 몸체  함수 정의 } 종이위에 쓰는 C 프로그래밍

13 간단한 함수 프로그램 - 형식2 #include<stdio.h>
void line(void); //프로토타입(원형) 선언 int main(void) { line(); 함수 호출 line(); printf(" Chosun University\n"); return 0; } void line(void) { printf("=========================\n"); }

14 2.2 함수의 구성 원칙 prototype(함수 원형, 프로토타입)의 선언 함수의 정보를 컴파일러에게 미리 제공
반환값(리턴값)의 자료형을 정확하게 표시 함수명은 식별자의 명명 규칙에 따라 기능을 알기 쉽게 작성 함수로 전달될 데이터인 매개변수를 잘 활용 하나의 함수는 한 가지 기능만 구현하도록 구성 종이위에 쓰는 C 프로그래밍

15 함수 실습 실습문제] 변수 a = 30 , b = 40를 선언 후 두 수를 더하는 프로그램을 나눠진 용지에 코딩. 자료형은 정수형 합 변수 :sum 두 수 더하는 식 : sum = a + b; 출력 : sum 값 함수로 변환 과정을 나눠진 용지에 코딩. 함수의 자료형과 함수명과 함수의 ( ) 안에 들어 갈 매개변수(가인자)를 정함 프로토타입 선언 함수 안에서 해야 할 기능을 정의 및 반환 (return ) 함수 자료형 int 함수명 : sum(int a, int b);

16 함수 실습 – 형식1과 2로 작성 #include <stdio.h>
int Sum(int a, int b); //  함수 원형 선언 int main(void) { int x =30 , y = 5; // 두 개의 변수 선언 int total ; total = Sum(x, y); // 함수 호출과 실행제어권 이동 printf("두 수의 합은 : %d\n", total); return 0; } int Sum(int a, int b) // 함수의 자료형과 함수명을 정한 {  매개변수(가인자)를 정함 int result ;  기능을 정의 후 결과를 반환 result = a + b; return result; }

17 함수 실습 – 함수화 과정 함수화는 반환 값이 있는 경우와 없는 경우로 나뉜다.
반환 값이 없는 경우는 단순 반복 부분을 함수화한다. 테두리, 반복 문자열 등 반환 값이 있는 경우는 수식부분을 함수화 한다. 사칙연산에서 +, - , /, * 부분 등 함수화는 곧 사용자 함수 정의라 할 수 있다. 사용자 함수 정의 작성 원칙에 따라 작성한다. 함수 자료형과 함수명, 함수의 매개변수 개수, 기능정의와 반환값등이 필요하다.

18 2.4 함수의 프로토타입(원형) #include <stdio.h> int Sum(int a, int b);
main( )함수를 제외한 모든 함수는 사용되기 전에 선언 #include <stdio.h> int Sum(int a, int b); 프로토타입은 세미콜론( ; )을 붙여서 함수정의와 구분 프로토타입은 함수의 매개변수의 개수와 자료형과 반환되는 자료형의 정보를 컴파일러에게 제공 함수의 프로토타입을 선언 하면 안정적인 프로그램 제작 선언할 내용이 많으면 헤더파일(*.h)을 작성, 사용 가능 표준함수의 프로토타입은 헤더파일로 제작하여 제공 scanf, printf 등 의 프로토타입은 stdio.h 파일에 있음 종이위에 쓰는 C 프로그래밍

19 3. 함수의 정의와 호출 함수는 헤더(header)와 본체(body)로 구분 함수의 호출 과정 main() 함수 수행
실인자를 가인자로 전달 호출된 함수 수행 함수 호출 결과값 반환 호출된 함수 종료 종이위에 쓰는 C 프로그래밍

20 실인수와 가인수의 개수와 데이터형은 일치해야 함. 함수의 수행이 끝나면 호출한 함수로 리턴
함수정의 시에 사용하는 변수 형식 매개변수, 형식 인자, 가인자, 가인수 함수호출 시에 사용되는 인수 실인수 (actual argument) , 실인자 실인수와 가인수는 1 : 1로 대응해서 정보 전달 실인수와 가인수의 명칭이 동일할 필요는 없음 실인수와 가인수의 개수와 데이터형은 일치해야 함. 함수의 수행이 끝나면 호출한 함수로 리턴 종이위에 쓰는 C 프로그래밍

21 예제10-2] 다음 프로그램에서 함수 호출이 어떻게 처리되는지를 설명하여라.
예제10-2] 다음 프로그램에서 함수 호출이 어떻게 처리되는지를 설명하여라. 1: #include <stdio.h> 2: int sum(int , int); 3: main( ) {         4:      int i = 10, j = 100;       5:      sum(i, j); 6:      ++i, ++j;           7:      printf("total=%d", i + j); }   8: int sum(int x, int y) { 9:        printf("sum = %d\n", x + y); 10:      ++x, ++y; 11:      printf("x = %d, y = %d\n", x, y);  //return x+y; }  수행 순서 1 2  3  4  5 (스택에 저장)  8  9  10  11 (스택에 저장한 다음 문장으로 리턴)  6  7  종료 종이위에 쓰는 C 프로그래밍

22 기말시험 시험일 : 12월 7일 시험범위 : for , 이중for , 배열, 함수
배열은 형식, 뜻, 선언 및 특징등, 1차원 배열 초기화, 2차원 배열 초기화와 문자열 배열 초기화 프로그램 출제형태는 객관식, 주관식, 빈 칸 채우기, 프로그램 작성, 실행오류 찾기 프로그램 실행결과값

23 배열 출제 예시 다음 배열의 초기화 중 오류가 있는 것은?
 int chosun[5];  int chosun[]={1,2,3,4,}  int chosun[3]= {1,2,3,4,} ;  int chosun[5] = {1,2}; int ch[2][2];로 선언된 배열의 기억형태를 표현하시오. 다음 배열에 관한 사항 중 맞는 것(틀린 것)을 고르시오. 다음 프로그램을 완성하시오. 프로그램을 작성하시오. 교재와 배열강의자료 그리고 배열실습평가를 참조바람.

24 함 수 함수가 왜 필요한지의 정의 표준(내장)함수의 종류 중 헤더파일과 함수 기능 연결관계가 맞는 것은?
함수의 3가지 요건이 아닌것은? 함수의 프로토타입(원형) 관한 사항 중 맞는 것(틀린 것)을 고르시오. 함수 호출 처리과정을 쓰시오. 함수화 시키는 부분 및 프로그램 분석

25 감사 감사


Download ppt "함수 강의자료 및 기말도우미."

Similar presentations


Ads by Google