본문으로 바로가기

[네퓨즈 수업 - C] 함수 정리

category 네퓨즈 수업 2016. 4. 7. 17:40

함수란?

어떤 기능을 수행하는 소스코드 뭉치이다.

기능별로 나누어 처리할 수 있어서 큰프로그램을 만들고 오류를 처리하기가 쉽다.

같은 내용을 반복하지 않아도 된다

재귀함수를 사용 할 수 있다.


함수 선언

자료형 함수이름(입력값과 자료형)

{

return 반환값;

}


함수 호출

int main()

{

함수이름(입력값과 자료형)

}


수학함수(y=f(x)) vs 프로그래밍 함수

수학에서는 입력이 1개 vs 프로그래밍에서는 0개이상

수학에서는 결과가 1개 vs 프로그래밍에서는 없거나 1개. (결과값의 자료형을 void로하면 없다)


-> 중간에 함수를 실행하다가 return을 만나면 함수를 강제종료하고 빠져나감.

예제)

함수를 이용하여 계산기를 만들어보자

문자열을 숫자로 바꾸는 프로그램을 만들어보자


재귀함수란?

재귀함수는 자기 자신을 부르는 다시 호출하는 함수를 말한다.

이름 이용하면, 복잡한 반복이나 경우의 수 계산을 쉽게 할 수 있다.

수학적 귀납법(점화식)을 매우빠른속도로 짤 수 있다. ( 수학적인 공식 그대로 구현할 수 있다.)


재귀함수의 장점

재귀함수를 일종의 반복문처럼 사용할 수 있따.

함수를 호출하면 그 자리에서 연산을 멈추고 호출한 함수 내로 들어가 연산을 처리한 뒤 마저한다.

if문(조건문)을 이용해 반복을 빠져나올 조건을 쓴다.

자신을 호출하는 지점에 따라 실행되는 순서가 다르다.

예제)

함수로 별찍기 시리즈를 만들어보자

- 직각삼각형, 역직삼각형, 직각삼각형의 반대, 역 직각삼각형의 반대 


재귀함수 예제

a와 B가 가위바위보를 해서 이기면 2칸을 올라가고, 지면 1칸을 내려간다. 가위바위보를 10번 할떄, A가 이동한 위치를 모두 출력하라 ( 단 무승부는 무시 )

A가 이기는 경우와 B가 지는 경우가 같고, A가 지고 B가 이기는 경우는 같으므로, A만 신경쓰자.

f(n,h)

n에서 1까지 반복한다.

반복을 끝낼 떄 위치를 출력한다.

h-1인 경우와 ,h+2인 경우가 있다.