Computer-programming-functions

提供:Dev Guides
移動先:案内検索

コンピュータープログラミング-機能

関数は、単一の関連アクションを実行するために使用される、整理された再利用可能なコードのブロックです。 関数を使用すると、アプリケーションのモジュール性が向上し、高度なコードの再利用が可能になります。 * printf() main()*などのさまざまな関数を既に見ました。 これらは、言語自体が提供する組み込み関数と呼ばれますが、独自の関数を作成することもできます。このチュートリアルでは、これらの関数をCプログラミング言語で記述して使用する方法を説明します。

関数の良いところは、いくつかの名前で有名だということです。 プログラミング言語が異なれば、たとえば、関数、メソッド、サブルーチン、プロシージャなどの名前が異なります。 このような用語に出会った場合は、このチュートリアルで説明するのと同じコンセプトを想像してください。

数値の2つの配列を定義するプログラムから始めましょう。次に、各配列から最大の数値を見つけます。 与えられた数のセットから最大数を見つけるための手順を以下に示します-

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の2つのセットしかありませんが、各セットから最大数を見つけるために10個以上の同様のセットがある場合を考えてください。 このような状況では、10回以上処理を繰り返す必要があり、最終的に、コードが繰り返されるとプログラムが大きくなりすぎます。 このような状況に対処するため、プログラミングで何度も使用されるソースコードを保持しようとする関数を作成します。

Cプログラミング言語で関数を定義する方法を見てみましょう。その後のセクションでは、それらの使用方法を説明します。

関数を定義する

Cプログラミング言語の関数定義の一般的な形式は次のとおりです-

return_type function_name( parameter list ) {
   body of the function

   return [expression];
}

Cプログラミングの関数定義は、_function header_と_function body_で構成されています。 ここに関数のすべての部分があります-

  • 戻り値の型-関数は値を返す場合があります。 return_type は、関数が返す値のデータ型です。 一部の関数は、値を返さずに目的の操作を実行します。 この場合、return_typeはキーワード void です。
  • 関数名-これは関数の実際の名前です。 関数名とパラメーターリストは一緒に関数シグネチャを構成します。
  • パラメータリスト-パラメータはプレースホルダのようなものです。 関数が呼び出されると、パラメーターとして値を渡します。 この値は、実際のパラメーターまたは引数と呼ばれます。 パラメーターリストは、関数のパラメーターのタイプ、順序、および数を参照します。 パラメーターはオプションです。つまり、関数にパラメーターを含めることはできません。
  • 関数本体-関数本体には、関数の動作を定義するステートメントのコレクションが含まれています。

関数を呼び出す

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

Javaの関数

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]

Pythonで関数のこの構文を使用して、上記の例は次のように書くことができます-

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