メソッド(method) の定義

32 と 24 の GCM は 8 です

C# でメソッド(メンバー関数) を定義して呼び出します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. フォルダーに次のファイルを格納して下さい。
    ソースコード(Gcm.cs)です。
    /********************************************/
    /*★ C# GCM Function Program    前田 稔 ★*/
    /********************************************/
    using System;
    
    class console
    {
        public static int Main()
        {
            int x = 32;
            int y = 24;
    
            int ans = gcm(x, y);
            Console.WriteLine("{0} と {1} の GCM は {2} です",x,y,ans);
            System.Console.ReadLine();
            return 0;
        }
    
        static int gcm(int n, int m)
        {
            while(n!=m)
            {   if (n>m)    n-= m;
                else        m-= n;
            }
            return n;
        }
    }
    
  2. C++ では Object Class に含まれている関数をメンバー関数と言いますが、C# ではメソッドと呼んでいます。
    ここでは些細な事にはこだわらず、メソッドと関数は同じようなものと思って下さい。
    関数には Static 関数と Static で無い関数があります。
    Static 関数は、インスタンス化しなくても呼び出すことが出来る関数で、Main() は Static で宣言しなければなりません。
    また Static 関数からインスタンス化しないで呼び出す関数やデータは Static で宣言する必要があります。
    一般に Main() が定義されている Class 以外は、インスタンス化して呼び出すのがルールのようです。
    インスタンス化の説明は gcmlcm Class を定義 を参照して下さい。
  3. 上記のプログラムでは console Clsss のメソッドとして Main() と gcm() が宣言されています。
    最初に制御が渡される Main() は Static で宣言しなければなりません。
    また Main() から直接呼び出される gcm() も Static で宣言する必要があります。
    gcm() 関数では、パラメータで渡された n と m の最大公約数(GCM)を求めて、関数値としてリターンしています。
  4. gcm() 関数は Main() と同じ console Clsss のメソッドなので Class 名で修飾しなくてもかまいません。
    int ans = gcm(x, y);

【演習】

  1. gcm() 関数を Class 名で修飾して呼び出すことも出来ます。
    console で修飾して呼び出してみて下さい。
    int ans = console.gcm(x, y);
  2. gcm() 関数の static 宣言を外すと、どんなエラーが表示されるでしょう。
    int gcm(int n, int m)
  3. 最大公約数(GCM)とは、二個の整数を割り切ることのできる最大の数です。
    最大公約数はユークリッドの互除法を使った次の手順で計算できます。
    1. data1 と data2 が等しいとき data1 が最大公約数です。
    2. data1 が data2 より大きいとき data1-=data2 を計算して 1. に戻ります。
    3. data2 が data1 より大きいとき data2-=data1 を計算して 1. に戻ります。

超初心者のプログラム入門(C# Frame Work)