2019년 1월 16일 오후 6시 15분 제 6 장 함수 khlee@dsc.ac.kr.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
Power C++ 제6장 포인터와 문자열.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
쉽게 풀어쓴 C언어 Express 제12장 문자와 문자열 C Express Slide 1 (of 28)
제3장 게임기본모듈 Page 153 ~ 182.
컴퓨터 프로그래밍 기초 [Final] 기말고사
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
10장 함수.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
23장. 구조체와 사용자 정의 자료형 2.
프로그래밍실습 제 4 강.
6장. printf와 scanf 함수에 대한 고찰
2007 1학기 11 프로젝트 기초 실습.
Tail-recursive Function, High-order Function
14장. 포인터와 함수에 대한 이해.
제 3 장 상수와 변수
-Part3- 제2장 문자열 표준 함수와 기타 표준 함수
11장. 1차원 배열.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
Chapter 10 함수 기본.
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
27장. 모듈화 프로그래밍.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
문자열과 배열 문자열 입출력 문자열 처리 함수 문자 처리 함수 문자열의 배열
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Chapter 08. 함수.
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
제 6 장 함수(functions).
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
제 15 강 문자와 코드 shcho.pe.kr.
Chapter 13. 템플릿(Template) 1
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
05. General Linear List – Homework
구조체(struct)와 공용체(union)
컴퓨터 프로그래밍 기초 #13 : 문자열 Seong-Yun Choi
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
김선균 컴퓨터 프로그래밍 기초 - 12th : 문자열 - 김선균
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
실 습 2.
함수 강의자료 및 기말도우미.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

2019년 1월 16일 오후 6시 15분 제 6 장 함수 khlee@dsc.ac.kr

제6장 수행준거  C 프로그램에서 함수(function)의 개념과 종류를 설명할 수 있다.  함수를 이용하여 간단한 사칙 계산기 프로그램을 개발 학 수 있다.

제6장에서 설명은? 6.1 함수의 기본 구성 6.2 함수의 종류 6.3 함수의 호출 6.4 함수에서 결과 값 되돌려 받기 6.1 함수의 기본 구성 6.2 함수의 종류 6.3 함수의 호출 6.4 함수에서 결과 값 되돌려 받기 6.5 라이브러리 함수

6.1 함수의 기본 구성 (1) 함수는? (2) 함수의 기능은? ☞ 특정한 작업을 수행하도록 만들어진 하나의 독립된 프로그램 6.1 함수의 기본 구성 (1) 함수는? ☞ 특정한 작업을 수행하도록 만들어진 하나의 독립된 프로그램 (2) 함수의 기능은? ☞ 전달되는 어떤 값을 받아서 함수 코드를 수행하며, 그 결과 값을 반환

6.1 함수의 기본 구성 함수데이터형 함수명() { /* 함수 본체의 시작점 */ 변수 문장 } /* 함수 본체의 시작점 */ 6.1 함수의 기본 구성 [사용형식]    함수데이터형  함수명()   {                         /* 함수 본체의 시작점 */       변수       문장  }                         /* 함수 본체의 시작점 */

6.1 함수의 기본 구성 퀴즈 풀어보기 교제 163 쪽 ( 1번 ~ 5번 )

6.2 함수의 종류  main function  user defined function  library function

6.2 함수의 종류 ① main 함수 ② 사용자 정의 함수 ③ 라이브러리 함수 - 하나의 프로그램 전체를 통제하는 함수 6.2 함수의 종류 ① main 함수 - 하나의 프로그램 전체를 통제하는 함수 - 하나의 프로그램 파일에 꼭 하나만 존재해야만 하는 함수 - 이 함수는 다른 함수의 호출 없이 자동으로 실행되는 함수 ② 사용자 정의 함수 - 사용자가 필요에 따라 직접 정의하여 사용하는 함수 - 이 함수는 필요한 만큼 정의하여 사용할 수 있음 - 단독으로는 독립된 역할을 못함 - 다른 함수의 호출이 있어야만 실행 - 함수의 원형을 main() 함수 위에 선언해 주어야 하는 함수 ③ 라이브러리 함수 - C언어 컴파일러 자체에서 지원해주는 함수 - 이 함수는 함수의 사용법에 따라 정의해야만 사용이 가능 - 함수의 본체가 정의된 해더파일을 포함시켜야만 사용 가능한 함수

6.2 함수의 종류 #include <stdio.h> void main() { char irum[20]; 6.2 함수의 종류 ◀6-1.C▶ 메인 함수만으로 프로그래밍한 경우 #include <stdio.h> void main() { char irum[20]; printf("누구신가요? "); scanf("%s", irum); printf("%s 님 안녕하세요. \n", irum); } 실행결과                                                  누구신가요? 한송이 <Enter> 한송이 님 안녕하세요.

6.2 함수의 종류 #include <stdio.h> void who(char name[20]); 6.2 함수의 종류 ◀6-2.C▶ 사용자정의 함수 who()를 이용한 경우 #include <stdio.h> void who(char name[20]); void main() { char irum[20]; printf("누구신가요? "); scanf("%s", irum); who( irum ); } void who( char name[20] ) printf("%s 님 안녕하세요. \n", name); 실행결과                         누구신가요? 한송이 <Enter> 한송이 님 안녕하세요.

6.2 함수의 종류 퀴즈 풀어보기 교제 167 쪽 ( 6번 ~ 14번 )

6.3 함수의 호출 사용자 정의 함수와 라이브러리 함수는 다른 함수의 호출이 있어야 그 함수가 동작한다. 6.3 함수의 호출 사용자 정의 함수와 라이브러리 함수는 다른 함수의 호출이 있어야 그 함수가 동작한다.  return 문이 없는 경우  return 문이 있는 경우

6.3 함수의 호출 (1) 리턴(return) 문이 없는 경우 #include <stdio.h> 6.3 함수의 호출 (1) 리턴(return) 문이 없는 경우 ◀6-3.C▶ 값을 전달하지 않고 호출하는 경우   #include <stdio.h> void add(); void main() { add(); } void add() int aa=10, bb=20, cc; cc = aa + bb; printf("함계: %d \n", cc); 실행결과                  합계: 30

6.3 함수의 호출 #include <stdio.h> void add(int aa, int bb); 6.3 함수의 호출 ◀6-4.C▶ 값을 전달하면서 호출하는 경우   #include <stdio.h> void add(int aa, int bb); void main() { int a=10, b=20; add( a, b ); } void add( int aa, int bb ) int cc; cc = aa + bb; printf("합계: %d \n", cc); 실행결과                          합계: 30

6.3 함수의 호출 (2) 리턴(return) 문이 있는 경우 #include <stdio.h> int add(); 6.3 함수의 호출 (2) 리턴(return) 문이 있는 경우 ◀6-5.C▶ 값을 전달하지 않고 호출하는 경우  #include <stdio.h> int add(); void main() { int sum; sum = add(); printf("합계: %d \n", sum); } int add() int aa=10, bb=20, cc; cc = aa + bb; return( cc ); 실행결과                             합계: 30

6.3 함수의 호출 #include <stdio.h> int add(int aa, int bb); 6.3 함수의 호출 ◀6-6.C▶ 값을 전달하면서 호출하는 경우   #include <stdio.h> int add(int aa, int bb); void main() { int sum; int a=10, b=20; sum = add( a ,b ); printf(“합계: %d \n", sum); } int add( int aa, int bb ) int cc; cc = aa + bb; return(cc); 실행결과                                   합계: 30

6.3 함수의 호출 퀴즈 풀어보기 교제 173 쪽 ( 15번 ~ 17번 )

6.4 함수에서 결과 값 되돌려 받기  1 개의 결과 값 되돌려 받기  여러 개의 결과 값 되돌려 받기

6.4 함수에서 결과 값 되돌려 받기 (1) 한 개의 결과 값 되돌려 받기 #include <stdio.h> 6.4 함수에서 결과 값 되돌려 받기 (1) 한 개의 결과 값 되돌려 받기 ◀6-7.C▶ #include <stdio.h> int add(int a, int b); void main() { int hab; hab = add( 1, 100 ); printf("합계: %d \n", hab); } int add( int a, int b ) int c=0, n; for(n=a; n<=b; n++) c = c + a; return( c ); 실행결과                       합계: 5050

6.4 함수에서 결과 값 되돌려 받기 (2) 여러 개의 결과 값 되돌려 받기 여러 개의 결과 값을 되돌려 받기 위해서는 6.4 함수에서 결과 값 되돌려 받기 (2) 여러 개의 결과 값 되돌려 받기 여러 개의 결과 값을 되돌려 받기 위해서는 함수의 인자를 포인터(pointer)형으로 사용한다. 그 이유는 리턴(return)문을 이용하면, 하나의 결과 값만 되돌려 받기 때문이다.

6.4 함수에서 결과 값 되돌려 받기 #include <stdio.h> 6.4 함수에서 결과 값 되돌려 받기 ◀6-8.C▶ #include <stdio.h> void abc(int *x, int *y); void main() { int a=100, b=200; printf("호출 전: a=%d b=%d \n", a, b); abc( &a, &b ); printf("호출 후: a=%d b=%d \n", a, b); } void abc( int *x, int *y ) *x = 300; *y = 500; 실행결과                                                    호출하기 전: a=100 b=200 호출한 후: a=300 b=500

6.4 함수에서 결과 값 되돌려 받기 퀴즈 풀어보기 교제 177 쪽 ( 18번 ~ 20번 )

6.5 라이브러리 함수 함수의 원형을 가지고 있는 헤더파일을 포함시켜야만 사용 가능한 함수이다. 6.5 라이브러리 함수 함수의 원형을 가지고 있는 헤더파일을 포함시켜야만 사용 가능한 함수이다.  문자(character) 처리 라이브러리 함수  문자열(string) 처리 라이브러리 함수  데이터 변환 라이브러리 함수  수학관련 함수 등

6.5 라이브러리 함수 (1) 문자 처리 함수 - 문자 처리 함수에는 문자의 종류를 구분하기 위한 is_형 함수가 있다. 6.5 라이브러리 함수 (1) 문자 처리 함수 - 문자 처리 함수에는 문자의 종류를 구분하기 위한 is_형 함수가 있다. - 그리고 문자를 변환하기 위한 to_형 함수가 정의되어 있다. - 문자처리 라이브러리함수를 이용할 때에는 ctype.h 해더파일을 포함시켜야 한다.      함수                    설명  isalnum(c)    isalpha(c)  isdigit(c)  islower(c)  isupper(c)  tolower(c)  toupper(c)  c가 영문자.(A~Z, a~z)이거나  숫자(0~9)이면 결과는 1(참)이다.  c가 영문자(A~Z, a~z)이면 결과는 1(참)이다.  c가 숫자(0~9)이면 1(참)이다.  c가 소문자(a~z)이면 1(참)이다.  c가 대문자(A~Z)이면 1(참)이다.  문자 c 를 소문자로 변환시킨다.  문자 c 를 대문자로 변환기킨다.

6.5 라이브러리 함수 #include <stdio.h> #include <ctype.h> 6.5 라이브러리 함수 ◀6-9.C▶   #include <stdio.h> #include <ctype.h> void main() { int n; char ch; for(n='a'; n<='z'; n++){ if( islower(n) ){ ch = toupper(n); printf("%c", ch); } 실행결과                                                              ABCDEFGHIJKLMNOPQRSTUVWXYZ

6.5 라이브러리 함수 (2) 문자열 처리 함수 - 문자열을 처리하는 데 필요한 함수들이 정의되어 있다. 6.5 라이브러리 함수 (2) 문자열 처리 함수 - 문자열을 처리하는 데 필요한 함수들이 정의되어 있다. - 포함시켜야 할 해더파일은 string.h 이다.      함수                 설명 strlen(s) strcpy(s1, s2) strcat(s1, s2) strcmp(s1, s2)    문자열 s 의 길이를 구해준다.  문자열 s1 에 문자열 s2 를 복사시킨다.  문자열 s1 의 뒤에 문자열 s2 를 연결한다.  문자열 s1 과 s2 의 값을 비교한다.  이때 s1>s2 이면 양수 값을, s1<s2 이면  음수 값을, s1==s2 이면 0 값을 반환한다.

6.5 라이브러리 함수 #include <stdio.h> #include <string.h> 6.5 라이브러리 함수 ◀6-10▶ #include <stdio.h> #include <string.h> void main() { char s1[20]="abcde", s2[20] ="ABC"; printf("(1) %s \n", s1 ); strcpy(s1, s2); printf("(2) %s \n", s1); strcat(s1, s2); printf("(3) %s \n", s1);; } 실행결과                               (1) abcde (2) ABC (3) ABCABC

6.5 라이브러리 함수 (3) 데이터 변환 함수 - 문자열 데이터를 숫자로 변환하는 함수들이 정의되어 있다. 6.5 라이브러리 함수 (3) 데이터 변환 함수 - 문자열 데이터를 숫자로 변환하는 함수들이 정의되어 있다. - 포함시켜야 할 해더화일은 stdlib.h 이다.           함수                 설명  atoi(s)  atol(s)  atof(s)  문자열 s를 int 형으로 변환시킨다.  문자열 s를 long int 형으로 변환시킨다.  문자열 s를 double 형으로 변환시킨다.

6.5 라이브러리 함수 #include <stdio.h> #include <stdlib.h> 6.5 라이브러리 함수 ◀6-11.C▶ #include <stdio.h> #include <stdlib.h> void main() { int a; double b; char s[20]="123.456"; printf("s=%s \n", s); a=atoi(s); printf("a=%d \n", a); b=atof(s); printf("b=%f \n", b); } 실행결과                                s = 123.456 a = 123 d = 123.456000

6.5 라이브러리 함수 (4) 수학관련 함수 - 수학 상수 및 함수를 처리해주는 함수들이 정의되어 있다. 6.5 라이브러리 함수 (4) 수학관련 함수 - 수학 상수 및 함수를 처리해주는 함수들이 정의되어 있다. - 포함시켜야 할 해더화일은 math.h 이다.     

6.5 라이브러리 함수 함수 설명 exp(x) sqrt(x) pow(x,y) sin(x) cos(x) tan(x) 6.5 라이브러리 함수   함수               설명  exp(x)  sqrt(x)  pow(x,y)  sin(x)  cos(x)  tan(x)  acos(x)  asin(x)  atan(x)  sinh(x)  cosh(x)  tanh(x)  fabs(x)  fmod(x,y)  log(x)  log10(x) e(=2.718)의 자승을 구합니다. x의 제곱근을 구합니다. x의 y승을 구합니다. sine 값을 구합니다. cosine 값을 구합니다. tangent 값을 구합니다. arccosine 값을 구합니다. arcsine 값을 구합니다. arctangent 값을 구합니다. hyperbolic sine 값을 구합니다. hyperbolic cosine 값을 구합니다. hyperbolic tangent 값을 구합니다. x의 절대치 값을 구합니다. x/y의 나머지를 구합니다. 자연 로그 값을 구합니다. 상용 로그 값을 구합니다.

6.5 라이브러리 함수 #include <stdio.h> #include <math.h> 6.5 라이브러리 함수 ◀6-12.C▶ #include <stdio.h> #include <math.h> void main() { printf("2의 3승은 %f \n", pow(2.0, 3.0) ); printf("2의 제곱근은 %f \n", sqrt(2.0) ); printf("e의 3승은 %f \n", exp(3.0) ); } 실행결과                                         2의 3승은 8.000000 2의 제곱근은 1.414214 e의 3승은 20.085537

6.5 라이브러리 함수 퀴즈 풀어보기 교제 183 쪽 ( 21번 ~ 25번 )

Question and Answer 제6장 끝