본문 바로가기

IT전공관련

함수 정리 보고서

함수 보고서

 

1. 함수소개

먼저 함수란,

간단히 말하자면 특정기능을 더욱 간결하고, 편리하게 

사용하기 위하여 쓰는 일종의 도구라고, 볼수있다.

쉽게 말하자면, 함수는 특정한 기능을 따로 분리해놓은 것

으로 수학에서 말하는 함수와 거의 동일한 기능을 수행한다.

{X를 넣으면 Y과 출력되는 것(여기서 X는 사용자에게 입력받은 수를 말한다)}

그렇다면 함수를 쓰는 이유는 무었일까?

예제를 하나 들어보자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
 
say(char name[]) {
 
    printf("what are you doing %s", name);
}
int main() {
 
    char name[10];
    
    printf("당신의 이름을 알려주세요.(영어로)");
    scanf("%s", name);
    
    say(name);
 
    return 0;
}
cs

위에 것은 함수를 이용하여 간단한 프로그램을 짠것이다.

위에것과 밑에

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
 
int main() {
 
    char name[10];
 
    printf("영어 이름을 입력해주세요.:");
    scanf("%s", name);
    printf("What are you doing?%s", name);
 
    return 0;
}
cs

이것을 비교해보자.(그냥 일반적으로 했을 때)

이것은 이름을 입력하면 미리 설정해 놓은 문장을

같이 출력하는 프로그램들 이다.

밑에 것이 훨씬더 짧고 간단해보인다. 따라서

그냥 이것들만 봤을 때에는 함수의 필요성을 못느낄것같다.

하지만, 이것을 수천번 수만번 반복해야 한다면?

말이 달라질것이다. 그럼이제 부터 함수에 대해 알아보자

먼저 왜 굳이 함수를 쓸까?

함수의 장점은 이것들이 있다.

1.가독성

c언어에서는 가독성이 상당히 중요시 여겨진다.

왜냐하면 프로그램을 하나 만들었는데,

그것에 에러가 생겨 고쳐야 할일이 생겼을 때 

그것을 쉽게 처리 해야 되기 때문이다.(and쉽게 읽기위해)

하지만 함수를 쓰지 않고 그냥 코드를 짯을 때에는

내가 어떤 코드를 설정했는 지, 이것의 역할은 무엇인지

등등 이러한 문제들에 대한 해결점을 찾기가 힘들다.

하지만 함수는 코드 설정을 위쪽에서 먼저 하기 때문에

찾아보기도 쉬울 뿐더러 역할을 알아내기 쉽다.

따라서 에러들을 고칠때 굉장히 유리하다

함수의 기본형태

함수의 기본형태

2.반복을 피한다(재활용성)

함수를 이용한다면   설정할 코드를 여러번 사용할때 

유리하다. 왜냐하면 함수는 미리설정 해놓은걸

출력만 하기 떄문이다.

(함수를 쓰지않는다면 설정할때 마다 입력 출력 설정등등 

너무 복잡하다.)

 

2. 함수의 형태들

 

함수의 형태는

입력X, 출력X  

입력X, 출력O  

입력O, 출력X  

입력O, 출력O 

 

이러한 4가지 형태가 있는데 출력이 있는것이라면 

return;이 꼭 필요하다.

(함수의 형태를 잘알고 있으면 함수를 사용할때 편하다)

 

3. 마무리 정리

함수는 가독성그리고 재활용성이 뛰어나다는 

장점이 있고, 함수의 형태에는 c에서는 

총4가지가 존재한다.

 

plus: 간단한 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
 
int num(int a, int b) {
 
    return (a + b) ;
}
int main() {
    int i, j, number;
    printf("수 두개를 입력하세요 :");
    scanf("%d %d"&i, &j);
    number = num(i, j);
    printf("합치면 %d이 나옵니다\n", number);
 
    return 0;
}
cs

숫자 두개를 입력하면 두개를 합치는 코드

'IT전공관련' 카테고리의 다른 글

배열 숙제  (0) 2017.03.29
배열 달팽이  (0) 2017.03.29
배열 보고서  (0) 2017.03.27
별찍기  (1) 2017.03.26
삼항 연산문  (0) 2017.03.21