Chapter 08. 함수.

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
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.
Chapter 7. 조건문.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
10장 함수.
제 3장. C보다 나은 C++ II.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
프로그래밍실습 제 11 강.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
6주차: Functions in C and Others
2주차: 변수, 수식, Control Flow.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
6장. printf와 scanf 함수에 대한 고찰
Tail-recursive Function, High-order Function
14장. 포인터와 함수에 대한 이해.
14. 예외처리.
KIM HEESANG PL/SQL 2 KIM HEESANG
11장. 1차원 배열.
13. 연산자 오버로딩.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
2장. 변수와 타입.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Chapter 11. 배열과 포인터.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
제 6 장 함수(functions).
5 함수.
제 15 강 문자와 코드 shcho.pe.kr.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Chapter 2 C++ 함수와 네임스페이스. 최호성.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
함수, 모듈.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
7 생성자 함수.
6 객체.
C Programming Seminar 데이터와 입출력 함수.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

chapter 08. 함수

함수란? 특별한 기능을 수행하는 코드 단위이다. - 두 정수값을 더하는 기능을 수행하는 함수의 예 a b

▶ 함수 만들기(정의) 두 정수값을 더하는 함수 만들기 – 함수가 어떤 기능을 수행하는가? 1. 함수의 기능에 맞는 이름을 정한다 – 함수가 어떤 기능을 수행하는가? 2. 매개변수를 선언한다 – 함수에 필요한 값들은 무엇인가? 3. 리턴값의 형태를 적어준다 – 함수가 실행된 후의 결과는 무엇인가? 4. 함수의 몸체를 만들자 – 함수가 수행하는 기능을 기술한다.

함수의 이름으로 호출하여 함수의 기능을 사용한다. ▶ 함수 사용하기(호출) 함수의 이름으로 호출하여 함수의 기능을 사용한다. - 함수를 호출할 때는 함수에 필요한 값을 전달인자로 준다. - 전달인자가 필요 없는 함수를 호출할 때도 괄호는 사용해야 한다.

▶ 함수의 실행과정 (1/3) 함수는 호출하기 전에 정의되어 있어야 한다. 다른 함수가 먼저 있어도 프로그램은 항상 메인함수부터 시작된다.

▶ 함수의 실행과정 (2/3) 메인함수의 실행 중에 다른 함수를 호출하면 그 때 함수가 실행된다. 함수가 호출될 때 전달인자는 매개변수에 복사된다.

▶ 함수의 실행과정 (3/3) 함수가 실행을 마치고 리턴할 때는 제어와 함께 리턴값도 돌려준다. 함수가 리턴하는 값은 복사되어 임시기억공간에 저장되며, 이 값은 따로 저장하지 않으면 버려지므로 다른 변수에 저장해서 사용한다.

▶ 함수를 사용한 성적계산 프로그램 메인함수 외에 총점과 평균을 구하는 부분을 함수로 작성한다.

▶ 함수를 사용한 성적계산 프로그램 #include <stdio.h> int main() { int total(int kor, int eng, int mat) { int tot; tot=kor+eng+mat; return tot; } double average(int tot) double avg; avg=tot/3.0; return avg; int main() { int kor, eng, mat; int tot; double avg; printf("세 과목의 점수를 입력하세요 : "); scanf("%d%d%d", &kor, &eng, &mat); tot=total(kor, eng, mat); avg=average(tot); printf("총점 : %d, 평균 : %.1lf\n", tot, avg); return 0; }

▶ 함수의 선언 함수를 호출하기 전에 정의되어 있지 않으면 컴파일에러가 발생한다. 호출함수 뒤에 함수를 정의할 경우에는 먼저 선언해야 한다.

함수의 선언은 함수의 머리(head)를 그대로 적고 세미콜론을 붙인다. ▶ 함수의 선언 함수의 선언은 함수의 머리(head)를 그대로 적고 세미콜론을 붙인다. 성적계산 프로그램을 함수의 선언을 사용하여 작성하는 경우 #include <stdio.h> int total(int, int, int); double average(int); int main() { … tot=total(kor, eng, mat); avg=average(tot); printf(“%d, %d”, tot, avg); } // total함수의 선언, 매개변수명은 생략할 수 있다. // average함수의 선언 total, average함수의 정의는 메인함수 뒤에 한다.

다양한 형태의 함수 함수는 용도에 따라 매개변수나 리턴값이 없는 다양한 형태가 있다. 매개변수가 없는 함수 리턴값이 없는 함수 리턴값과 매개변수가 모두 없는 함수

양수값을 키보드로 입력 받아서 리턴하는 함수의 예 ▶ 매개변수가 없는 함수 양수값을 키보드로 입력 받아서 리턴하는 함수의 예 int get_positive() { int pos; printf(“양수값 하나를 입력하세요 : ”); scanf(“%d”, &pos); return pos; } // 매개변수가 없고 리턴값만 있다. 메인함수에서 호출할 때 int main() { int n; n=get_positive(); … } // 전달인자는 없지만 리턴하는 값은 사용한다.

▶ 리턴값이 없는 함수 전달인자의 값을 단지 출력하는 경우라면 리턴값이 필요없다. 리턴값이 없는 함수는 리턴값의 형태를 void로 한다. 특정문자를 반복해서 출력하는 함수의 예 void char_print(char ch, int n) { int i; printf(“%c문자를 %d번 출력합니다 => ”, ch, n); for(i=0; i<n; i++){ printf(“%c”, ch); } // 매개변수는 있지만 리턴하는 값은 없다. 메인함수에서 호출할 때 int main() { char_print(‘X’, 5); return 0; } // 출력할 문자와 그 횟수를 전달인자로 주고 호출한다.

제목과 같이 일정한 문자열만을 출력하는 경우에 사용한다. ▶ 리턴값과 매개변수가 모두 없는 함수 제목과 같이 일정한 문자열만을 출력하는 경우에 사용한다. void title_print() { printf(“==========<< 성적표 >>=============\n\n”); printf(“ 언어 역사 과학 총점 평균\n”); } // 매개변수와 리턴값이 모두 없다. 메인함수에서 호출할 때 int main() { title_print(); … } // 함수의 이름만으로 호출한다.

프로그램이 크거나 복잡하면 함수를 만드는 것이 좋다. - 2부터 100까지의 수 중에서 소수를 모두 구하는 예 함수의 필요성 프로그램이 크거나 복잡하면 함수를 만드는 것이 좋다. - 2부터 100까지의 수 중에서 소수를 모두 구하는 예 이 부분을 함수로 작성하면 문제는 간단해진다! - 하나의 정수를 전달인자로 받아서 소수인지를 판단하는 함수를 만든다. int prime_check(int n) { int i; for(i=2; i<=n-1; i++){ if(n%i==0) return 0; } return 1; // 반복 제어변수 // i는 2부터 n-1까지 하나씩 증가한다. // n이 한번이라도 i로 나누어 떨어지면 소수가 아니다. // for문 중간에 리턴하지 않았다면 소수이다.

함수의 필요성 잘 만들어진 함수는 코드의 재활용성을 높인다. - printf함수와 scanf함수는 이미 만들어진 함수를 사용하는 것이다. 그러므로 함수는 재활용이 잘 되도록 작성해야 한다.