컴퓨터 프로그래밍-기능
함수는 단일 관련 작업을 수행하는 데 사용되는 체계적이고 재사용 가능한 코드 블록입니다. 함수는 애플리케이션에 더 나은 모듈화와 높은 수준의 코드 재사용을 제공합니다. 이미 다음과 같은 다양한 기능을 보았습니다.printf() 과 main(). 이를 언어 자체에서 제공하는 내장 함수라고합니다.하지만 우리 자신의 함수도 작성할 수 있으며이 튜토리얼에서는 이러한 함수를 C 프로그래밍 언어로 작성하고 사용하는 방법을 알려줍니다.
함수의 좋은 점은 여러 이름으로 유명하다는 것입니다. 예를 들어, 함수, 방법, 서브 루틴, 절차 등과 같이 프로그래밍 언어에 따라 이름이 다르게 지정됩니다. 이러한 용어를 접하게된다면이 튜토리얼에서 논의 할 동일한 개념에 대해 상상해보십시오.
두 개의 숫자 배열을 정의한 다음 각 배열에서 가장 큰 숫자를 찾는 프로그램으로 시작하겠습니다. 주어진 숫자 세트에서 최대 수를 찾는 단계는 다음과 같습니다.
1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Set max = L1
3. Take next number Li from the list and do the following
4. If max is less than Li
5. Set max = Li
6. If Li is last number from the list then
7. Print value stored in max and come out
8. Else prepeat same process starting from step 3
위의 프로그램을 C 프로그래밍 언어로 번역 해 보겠습니다.
#include <stdio.h>
int main() {
int set1[5] = {10, 20, 30, 40, 50};
int set2[5] = {101, 201, 301, 401, 501};
int i, max;
/* Process first set of numbers available in set1[] */
max = set1[0];
i = 1;
while( i < 5 ) {
if( max < set1[i] ) {
max = set1[i];
}
i = i + 1;
}
printf("Max in first set = %d\n", max );
/* Now process second set of numbers available in set2[] */
max = set2[0];
i = 1;
while( i < 5 ) {
if( max < set2[i] ) {
max = set2[i];
}
i = i + 1;
}
printf("Max in second set = %d\n", max );
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
Max in first set = 50
Max in second set = 501
위의 예에 대해 명확하다면 함수가 필요한 이유를 쉽게 이해할 수 있습니다. 위의 예에서는 set1과 set2라는 두 세트의 숫자 만 있지만 각 세트에서 최대 숫자를 찾기 위해 10 개 이상의 유사한 숫자 세트가있는 상황을 고려하십시오. 그런 상황에서 우리는 10 번 이상 반복해서 처리해야 할 것이고 궁극적으로 프로그램은 반복되는 코드로 인해 너무 커질 것입니다. 이러한 상황을 처리하기 위해 우리는 프로그래밍에서 계속해서 사용될 소스 코드를 유지하려는 함수를 작성합니다.
이제 C 프로그래밍 언어로 함수를 정의하는 방법을 살펴보고 다음 섹션에서 함수를 사용하는 방법을 설명합니다.
함수 정의
C 프로그래밍 언어에서 함수 정의의 일반적인 형식은 다음과 같습니다.
return_type function_name( parameter list ) {
body of the function
return [expression];
}
C 프로그래밍의 함수 정의는 함수 헤더 와 함수 본문으로 구성 됩니다. 다음은 함수의 모든 부분입니다.
Return Type− 함수는 값을 반환 할 수 있습니다. 그만큼return_type함수가 반환하는 값의 데이터 유형입니다. 일부 함수는 값을 반환하지 않고 원하는 작업을 수행합니다. 이 경우 return_type은 키워드입니다.void.
Function Name− 이것은 함수의 실제 이름입니다. 함수 이름과 매개 변수 목록은 함께 함수 서명을 구성합니다.
Parameter List− 매개 변수는 자리 표시 자와 같습니다. 함수가 호출되면 값을 매개 변수로 전달합니다. 이 값을 실제 매개 변수 또는 인수라고합니다. 매개 변수 목록은 함수의 매개 변수 유형, 순서 및 수를 나타냅니다. 매개 변수는 선택 사항입니다. 즉, 함수에 매개 변수가 없을 수 있습니다.
Function Body − 함수 본문에는 함수의 기능을 정의하는 명령문 모음이 포함되어 있습니다.
함수 호출
C 함수를 만드는 동안 함수가 수행해야하는 작업에 대한 정의를 제공합니다. 함수를 사용하려면 정의 된 작업을 수행하기 위해 해당 함수를 호출해야합니다.
이제 함수의 도움으로 위의 예를 작성해 보겠습니다.
#include <stdio.h>
int getMax( int set[] ) {
int i, max;
max = set[0];
i = 1;
while( i < 5 ) {
if( max < set[i] ) {
max = set[i];
}
i = i + 1;
}
return max;
}
main() {
int set1[5] = {10, 20, 30, 40, 50};
int set2[5] = {101, 201, 301, 401, 501};
int max;
/* Process first set of numbers available in set1[] */
max = getMax(set1);
printf("Max in first set = %d\n", max );
/* Now process second set of numbers available in set2[] */
max = getMax(set2);
printf("Max in second set = %d\n", max );
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
Max in first set = 50
Max in second set = 501
자바 기능
C 프로그래밍의 함수에 대해 잘 알고 있다면 Java에서도 쉽게 이해할 수 있습니다. Java 프로그래밍은 다음과 같이 명명합니다.methods그러나 나머지 개념은 거의 동일하게 유지됩니다.
다음은 Java로 작성된 동등한 프로그램입니다. 출력을보기 위해 실행을 시도 할 수 있습니다.
public class DemoJava {
public static void main(String []args) {
int[] set1 = {10, 20, 30, 40, 50};
int[] set2 = {101, 201, 301, 401, 501};
int max;
/* Process first set of numbers available in set1[] */
max = getMax(set1);
System.out.format("Max in first set = %d\n", max );
/* Now process second set of numbers available in set2[] */
max = getMax(set2);
System.out.format("Max in second set = %d\n", max );
}
public static int getMax( int set[] ) {
int i, max;
max = set[0];
i = 1;
while( i < 5 ) {
if( max < set[i] ) {
max = set[i];
}
i = i + 1;
}
return max;
}
}
위의 프로그램이 실행되면 다음과 같은 결과가 나옵니다.
Max in first set = 50
Max in second set = 501
Python의 함수
다시 한 번, C 및 Java 프로그래밍의 함수 개념을 안다면 Python도 크게 다르지 않습니다. 다음은 Python에서 함수를 정의하는 기본 구문입니다.
def function_name( parameter list ):
body of the function
return [expression]
파이썬에서이 함수 구문을 사용하면 위의 예를 다음과 같이 작성할 수 있습니다.
def getMax( set ):
max = set[0]
i = 1
while( i < 5 ):
if( max < set[i] ):
max = set[i]
i = i + 1
return max
set1 = [10, 20, 30, 40, 50]
set2 = [101, 201, 301, 401, 501]
# Process first set of numbers available in set1[]
max = getMax(set1)
print "Max in first set = ", max
# Now process second set of numbers available in set2[]
max = getMax(set2)
print "Max in second set = ", max
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
Max in first set = 50
Max in second set = 501