본문 바로가기

프로그래밍기초

프로그래밍 기초) 함수란? 함수의 종류, 함수 역할 및 기능, 메인함수

오늘은 기초 중의 기초 함수에 다뤄보도록 하겠습니다

함수란?

 

 

 

수학에서 많이 봤기 때문에 익숙한 그림이죠?

x를 넣었더니 안에서 뭔가 짬뽕후 f(x)즉 y를 뱉어주는

그림입니다.

함수란 어떤 재료를 넣어 새로운 값을 만드는 틀

이라고 생각하시면 이해하기 쉬울겁니다

근데 틀이 왜 필요할까요?

 

 

사용자 정희 함수

맨날 하던거처럼 예시를 들어보겠습니다

자.. 중간고사가 끝이났어요. 학생들은 수학, 영어, 국어 과목을 시험을 봤고 그 채점 점수 파일이 나한테 있다고

가정해봅시다. 각 학생들 평균 점수를 구한 다음 알려주려고 해요

 [C++]

C++은 출렵함수가 cout 입니다. java일 경우 System.out.print, C일경우 Printf 언어마다

다르지만 같은 격할을 합니다.

예시는 C언어로 들었지만 이번 포시팅은 개념만 이해하는데 초점을 맞출거라 언어는 크게 의미를

두지말고 진행하도록합시다.

 

정말 아무것도 모르는 사람 가정하에 기초부터 설명하려니깐 예시가 극단적인데

각각 학생의 점수를 더해준 다음 (7,12,17번 라인) 3과목이니 3으로 나눠서 평균점수를 구했어요

(8,13,18라인). 그리고 학생들에게 점수를 알려줬습니다. (9,14,19라인)

 

지금 예시는 학생이 3명인것만 작성을 했지만 만약 100명이라면 와우 코드가 얼마나 길어질까요?

10000명이라면??

저글 저렇게 써서 만들바에는 그냥 계산기를 두드리는게 더 빠르겠어요

게다가 저렇게 평균점수를 구하는건 간단한 기능이라서 3줄만 차지마니 이정도지

만약에 어떤 하나의 기능을 구현하는데 100줄을 차지한다면 코드의 길이는 더 심각해지고 뭐가 뭔지 알아보기 힘들겁니다

 

자 저렇게 특정 기능을 반복해서 사용해야 할 때, 매번 저렇게 일일이 작성해주면 비효율적이니깐

하나의 붕어빵 틀처럼, 틀을 만들어놓고 찍어내자! 이게 함수 입니다.

여기서 void~로 시작하는 5번째 라인부터 10번째 라인이 평균 점수 출력해주는 기능을 맡아줄 함수예요.

함수를 작성하는 문법도 언어마다 조금씩 차이가 있습니다

이렇게 함수로 따로 빼놓으니까 main 내부가 클린해졌죠?

main내부에서 3줄에 걸쳐 작성했던게 이제는 내가 만든 함수 이름을 호출함으로써 1줄로 줄어들었어요

이렇게 우리가 직접 필요에 따라 정의해서 사용하는 함수를 사용자 정의 함수라고 합니다.

지금이야 라인개수 차이가 얼마 안나보이지만, 기능이 복잡해 코드 수가 길수록 또 반복해야할 

일이 늘어날 수록 차이는 커질거예요

 

라이브러리 함수

사실 저기 있는 cout도 함수입니다. 우리가 정의해주지는 않았지만 편리하게 쓰라고 남이 정의해둔겁니다

여기서 cout는 모니터에 출력 역할을 수행해주는 함수입니다. 이런 것을 라이브러리 함수라고 합니다

앞으로 프로그래밍을 하면서 많은 라이브러리 함수를 사용하게 될겁니다.

 

즉 함수란 프로그램에서 처리할 내용을 모아두는 기본 단위입니다.

함수가 호출되면 함수 안에 있는 문잘들이 순차적으로 수행됩니다

문장들을 수행하다가 함수의 끝을 만나거나 리턴문을 만나면 함수를 호출한 것으로 되돌아갑니다

(즉 위 예시에서는 함수명을 호출하는 14번 라인을 만나면 해당 함수명과 똑같은 함수 몸체를 찾아

5번으로 올라가서 차례로 수행다하고 10번라인에서 함수를 끝을 만나 다시 15번 라인으로 돌아옵니다.)

 

여러번 갖다가 쓸 수도 있습니다. 코드의 재사용성을 높여주고 가독성도 높여줍니다

구조적으로 프로그램을 작성할 수 있게 해줍니다

 

main도 함수다

자바나 안드론이드나, C나 어떤 프로그램이든 개발할 때 보면 main이 있는데 main에서 프로그램이

시작되고 종료됩니다

 

 

main은 프로그램의 시작점이자 프로그램의 끝입니다.

좀 더 자세히 말하면 컴파일러가 처음으로 컴파일할 시작지점을 명시해주는 역할을 해요. 프로그램의 실행 순서는 결국

main의 흐름인거죠, 그러다가 함수호출당하면 함수한테 뿅 갔다가 다시 돌아오고.. 아무튼 시작점을 명시해줘야하니까

main은 반드시 하나여야 합니다. 그런데 이 main도 함수라는거

 

 

A program is made of one or more functions, one and only one of which must be named main.

the execution of the program always starys with main, but is can call other funchions to do some

pary of the job.

프로그램은 하나 또는 그 이상의 함수들로 구성되어 있습니다. 그 중 하나는 main

프로그램은 항상 main부터 시작해서 실행하는데 main은 특정 작업을 수행하기 위한 함수들을 호출할수

있습니다.

 

오늘은 대략 함수가 무언인지에 대해 살펴보았고

함수릐 구조, 함수작성법, 인수, 리턴값 함수포인터 주의해야할점 등드 함수에 대해서 다뤄야 할 많은 내용들은 각

언어 포스팅 함수 파트에서 좀 더 자세히 다루도록 할께요

 

그럼 안뇽~