-
함수
[학습내용] [학습목표] ▪ 함수 정의
▪ 함수 선언 및 호출▪ C언어에서 함수의 의미와 역할을 설명할 수 있다.
▪ 사용자 정의함수를 정의하고 사용할 수 있다.함수 정의
1. 함수 이해
함수란?
▪ 특정한 작업을 수행하는 문장을 모아둔 단위
장점
▪ 코드가 중복되지 않고 간결함
▪ 코드의 재사용성이 증가함
▪ 프로그램의 모듈화가 증대됨
▪ 유지보수가 용이함
2. 함수 정의 형식
리턴형
▪ 함수는 처리 후 결과를 함수를 호출한 곳으로 값을 보내줄 수 있음
▪ 리턴되는 값의 데이터 타입이 함수의 리턴형
▪ void, char, int, float…..
매개변수(Argument)
▪ 함수 호출 시 입력값을 전달하는 역할
▪ “,” 로 구분하여 여러 개 전달 가능
▪ 매개변수가 없는 경우는 void
리턴 X 매개변수 X 리턴 X 매개변수 O 리턴 O 매개변수 O void sub()
{
......
}void sub( int a, int b)
{
......
}int sub( int a)
{
int s;
......
return s;
}
double sub(void)
{
double a;
......
return a;
}함수 선언 및 호출
1. 선언과 호출
선언
▪ 함수는 사용 전 반드시 선언해야 함
▪ 선언은 함수의 원형(Prototype)을 기술함
▪ 선언 시 매개변수 이름은 생략 가능함
▪ 함수 호출 전에 정의문이 먼저 기술된 경우는 생략 가능함
호출
▪ 함수를 실행함
▪ 함수 이름과 매개변수를 기술함
▪ 호출 시 해당 함수에 정의된 문장이 수행됨
예제
▪ 두 수의 합을 출력하는 함수(연산 결과를 수행 함수에서 출력)를 작성하시오.
#include <stdio.h> void add(int, int); int main() { int a,b; scanf(“%d %d”, &a, &b); add( a, b); } void add(int x, int y) { printf(“%d+%d=%d”, x, y, x+y ); }
▪ 두 수의 합을 출력하는 함수(연산 결과를 호출하는 함수에서 출력)를 작성하시오.
#include <stdio.h> int add(int, int); int main() { int a,b, sum; scanf(“%d %d”, &a, &b); sum = add( a, b); printf(“%d+%d=%d”, a, b, sum ); } int add(int x, int y) { return x+y; }
▪ 주어진 정수의 factorial 값을 계산하는 함수를 작성하시오.
#include <stdio.h> void fact(int); int main() { int a; scanf(“%d”, &a); printf(“%d! 값은 %d 이다”, a, fact(a) ); } int fact(int a) { int i, re=1; for(i=a ; i>0 ; i--) re *= i; return re;
▪ 입력한 두 개의 정수값에 대한 나누기 연산 결과를 출력하시오.
#include <stdio.h> double div(int, int); int main() { int a,b; double re; scanf(“%d %d”, &a, &b); re = div( a, b); printf(“%d+%d=%f”, a, b, re ); } double add(int a, int b) { return (double)a/b; }
평가하기
Q1. 함수를 정의할 때 사용할 수 있는 매개변수는 최대 몇 개인가?
① 8
② 32
③ 256
④ 제한 없음매개변수의 개수는 제한 없이 사용 가능합니다.
Q2. 4칙연산을 수행하는 함수를 작성하고자 할 때, 피연산자 2개의 실수와 1개의 연산자(3,’+’, 2)와 같은 형태로 매개변수를 전달하는 함수 원형으로 옳은 것은 무엇인가?
① double calc(double a, b , char v);
② void calc(double, char);
③ double calc(double, double, char)
④ double calc(double, char, double)전달하는 매개변수의 순서대로 선언해야 합니다.
Q3. 리턴은 없고 double형 매개변수 2개를 가진 함수를 다음과 같이 정의할 경우 옳은 것은 무엇인가?
① sub(double a, double b){ }
② sub (double a, b){ }
③ void sub( double a, b) { }
④ void sub(double a, double b){ }
매개변수 선언은 함수 내에서의 변수 선언과 달리 각각 데이터 타입을 기술해야 합니다.
학습정리
1. 함수 정의
• 함수의 정의는 ‘리턴형 함수명 ( 매개변수 ) { }’의 형식으로 정의함
• 매개변수는 함수의 입력값으로 사용됨
• return은 함수를 호출한 곳으로 값을 반환하는 역할을 함
• return에 의해 반환할 수 있는 값은 한 개임
2. 함수 선언 및 호출
• 함수 선언은 함수의 원형(Prototype)을 기술함
• 함수 선언 시 매개변수명은 생략 가능함
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 1 - 배열 (0) 2021.07.28 프로그래밍 언어 활용 part 1 - 변수의 스코프 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 반복문 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 조건문 (0) 2021.07.25 프로그래밍 언어 활용 part 1 - 연산자 (0) 2021.07.25 댓글