repot選択画面へ戻る

Report#3:体積・表面積公式クラスの作成


目次

  1. 課題
  2. 体積計算(Volumes.java)
  3. 表面積計算(Area.java)
  4. 階乗計算
  5. 感想
  6. 参考文献

課題:体積・表面積公式クラスの作成

体積計算(Volumes.java)



class Volume {

//円柱の体積計算
	double CV (double r,double h){ //半径rと高さhを定義。
	double S = r*r*Math.PI;        //Math.PI=3.14...(円周率)
	return (S*h);                  //(底面積×高さ)
	}
//三角柱の体積計算
	double TV (double b,double h2,double h3){  //底辺bと底面の高さh2、三角柱の高さh3を定義。
	double S = b*h2/2;       
	return (S*h2);
	}
//四角柱の体積計算
	double QV (double l,double s,double h4){   //底面の縦と横をそれぞれl,s、高さをhと定義。
	double S = l*s;
	return (S*h4);
	}
}

class Volumes {
	public static void main(String args[]){
	double r,h,b,h2,h3,h4,l,s,CV,TV,QV;
	Volume V = new Volume();
	r = 10;
	h = 20;
	b = 25;
	h2= 25;
	h3= 30;
	h4= 15;
	l = 15;
	s = 40;
	CV= V.CV(r,h);
	TV= V.TV(b,h2,h3);
	QV= V.QV(l,s,h4);
//画面表示
	System.out.println("=円柱=");
	System.out.println("半径==>" + r );
	System.out.println("高さ==>" + h );
	System.out.println("体積==>" + CV );
	System.out.println(" ");
      
	System.out.println("=三角柱=");
	System.out.println("底辺==>" + b );
	System.out.println("高さ(底面)==>" + h2 );
	System.out.println("高さ(角柱)==>" + h3 );
	System.out.println("体積==>" + TV );
	System.out.println(" ");
       
	System.out.println("=四角柱=");
	System.out.println("縦==>" + l );
	System.out.println("横==>" + s );
	System.out.println("高さ=>" + h4 );
	System.out.println("体積==>" + QV );
	}
}      

実行結果


=円柱=
半径==>10.0
高さ==>20.0
体積==>6283.185307179587
 
=三角柱=
底辺==>25.0
高さ(底面)==>25.0
高さ(角柱)==>30.0
体積==>7812.5
 
=四角柱=
縦==>15.0
横==>40.0
高さ=>15.0
体積==>9000.0

考察(体積計算)

表面積計算(Area.java)



	
//四角柱の表面積	
	double QS(double l, double s,double h){
	double BS = l*s;          //底面積
	double SS = 2*(l+s)*h;    //側面積
	return(BS + SS);          //底面積×側面積
	}
	
//球の表面積
	double ball(double r){    //半径rを定義
	return(4*r*r*Math.PI);    
	}
}

class Area {
	public static void main(String args[]){
	double l,s,h,r,QS,ball;
	Surface_Area SA = new Surface_Area();
	l = 10;
	s = 15;
	h = 30;
	r = 10;
	QS = SA.QS(l,s,h);
	ball = SA.ball(r);

//画面表示
	System.out.println("四角柱の表面積");
	System.out.println("縦==>" + l);
	System.out.println("横==>" + s);
	System.out.println("高さ==>" + h);
	System.out.println("表面積" + QS);
	System.out.println(" ");
	
	System.out.println("球の表面積");
	System.out.println("半径==>" + r);
	System.out.println("表面積" + ball);
	System.out.println(" ");
	}
}

実行結果

四角柱の表面積
縦==>10.0
横==>15.0
高さ==>30.0
表面積1650.0
 
球の表面積
半径==>10.0
表面積1256.6370614359173

考察(表面積計算)

階乗計算

例題


import java.io.*;

class factrial {

  public static void main(String args[]) throws Exception {

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    System.out.print("input natural number: ");
    int num = (new Integer(in.readLine())).intValue();

    System.out.print("for文を使った階乗計算      => ");
    System.out.println(num + "! =" + factfor(num));

    System.out.print("再帰呼び出しによる階乗計算 => ");
    System.out.println(num + "! =" + factrec(num));

  }

  /* for 文を使った階乗の計算 */
  static int factfor(int number) {

    int factrial = 1;

    for (int i = 1; i <= number; i++) {
      factrial = i * factrial;
    }

    return(factrial);

  }

  /* 再帰による階乗の計算 */
  static int factrec(int number) {

    if (number == 0) return(1);
    return(number*factrec(number - 1));

  }

}

例題:実行結果

input natural number: 5
for      => 5! =120
saiki    => 5! =120

考察(階乗計算)

感想

  • コンパイルするときに文字コード関係のミスでエラー文自体が出なかったり、なんとか対処したら今度は大量のエラー文だでたりと本題以外のところでも予想以上に苦戦しました。本題でも、クラスの継承で引っかかりなかなか進まなかったこともありかなり苦労しました。
  • 参考文献

  • 独習Java (単行本) ジョゼフ オニール (著)