GCM Class を使う

"str=24/32" の GCM は 8 です。

gcmcall.jsp の中で gcmclass.class(java) を使います。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. プロジェクトのディクトリ構成です。
    C:\tomcat\webapps\ に ex\ のフォルダーを作成してプロジェクトを格納します。
    +:フォルダー, ・:ファイル, *:生成されるファイルです。
    +ex
        +WEB-INF
            +classes
                +myclass
                    ・gcmclass.java
                    *gcmclass.class
        ・gcmcall.jsp
    
  2. GCM(最大公約数)を求める gcmclass.java です。
    //★ GCM Class    前田 稔
    package myclass;
    
    public class  gcmclass
    {   private int     v1,v2;
        private int     w1,w2;
    
        // Constructor
        public gcmclass(int v1, int v2)
        {   this.v1= v1;
            this.v2= v2;
        }
    
        // GCM を求める
        public String getGcm()
        {   w1= v1;
            w2= v2;
            while(w1!=w2)
            {   if (w1>w2)  w1-= w2;
                else        w2-= w1;
            }
            return Integer.toString(w1);
        }
    }
    
  3. gcmcall.jsp のソースコードです。
    gcmclass を呼び出して GCM(最大公約数)を求めます。
    <%@ page contentType="text/html; charset=Shift_JIS"%>
    <%
      // String(str=24/32)の受け取りと分割
      String str[]= request.getParameter("str").split("/");
      // 整数(int)に変換
      int v1= Integer.parseInt(str[0]);
      int v2= Integer.parseInt(str[1]);
    
      // GCM Class の生成
      myclass.gcmclass cls= new myclass.gcmclass(v1,v2);
      // GCM の取得
      String gcm= cls.getGcm();
    %>
    
    <html>
      <head><title>gcmcall.jsp</title></head>
      <body>
        "str=24/32" の GCM は <%= gcm%> です。<BR>
      </body>
    </html>
    
  4. gcmclass.java をコンパイルして gcmclass.class を作成して下さい。
    package myclass; を使っています。
    コンパイルの詳細は JSP Error Guide を参照して下さい。
  5. "C:\tomcat\bin\tomcat7w.exe" を選択して、管理者として実行から apache-tomcat を起動します。
    WWW ブラウザを起動して下記の URL を張り付けて下さい。
    http://localhost:8080/ex/gcmcall.jsp?str=24/32
  6. ホームページに次のメッセージが表示されたらOKです。
    "str=24/32" の GCM は 8 です。
    str=24/32 の値を変えて試してみて下さい。

プログラムの説明

  1. gcmcall.jsp には、パラメータとして "str=24/32" が渡されます。
    これを / で切り分けて 24, 32 を v1, v2 に格納します。
          // String(str=24/32)の受け取りと分割
          String str[]= request.getParameter("str").split("/");
          // 整数(int)に変換
          int v1= Integer.parseInt(str[0]);
          int v2= Integer.parseInt(str[1]);
          
  2. v1,v2 をパラメータとして gcmclass をインスタンス化して、getGcm() で GCM を求めます。
    package myclass; を使っているので myclass.gcmclass と書きます。
        // GCM Class の生成
        myclass.gcmclass cls= new myclass.gcmclass(v1,v2);
        // GCM の取得
        String gcm= cls.getGcm();
        
  3. 後はページに表示するだけです。
    "str=24/32" の GCM は 8 です。
  4. gcmclass.java は Beans の仕様からは外れている「一般的な Object Class」です。
    詳細は「超初心者のプログラム入門(Java)/Class の基礎」を参照して下さい。
  5. gcmclass.java では package を使っています。
    今回のように Object Class として呼び出す場合は package が無くても動くようです?
    但し、Beans などでは必要らしく、JSP や Servlets で使う時は、package を使うように統一する方が賢明です。
  6. 今回は URL からパラメータとして v1,v2 を渡しましたが、FORM からタイプ入力する方が普通です。
    FORM からタイプ入力するプログラムを作成して下さい。

Java Game Program