Report#3
体積・表面積公式クラスの作成{〜12/11(Mon)}00: class keisan { 01: double pai = 3.14; 02: int shikakusui(int x, int y,int z){ 03: return x * y * z / 3; 04: } 05: int sankakuchu(int x, int y, int z){ 06: return x * y / 2 * z; 07: } 08: double enchu(int x, int y){ 09: return x * x * pai * y; 10: } 11: } 12: class taiseki3 { 13: public static void main(String args[]) { 14: int a,b,c,shi,san; 15: double en; 16: keisan enzan = new keisan(); 17: a = 2; 18: b = 6; 19: c = 4; 20: shi = enzan.shikakusui(a, b, c); 21: san = enzan.sankakuchu(b, c, a); 22: en = enzan.enchu(c, a); 23: System.out.println(""); 24: System.out.println("四角スイの体積"); 25: System.out.println("縦の長さ "+a); 26: System.out.println("横の長さ "+b); 27: System.out.println("高さ "+c); 28: System.out.println("体積 "+shi); 29: System.out.println(""); 30: System.out.println("三角チュウの体積"); 31: System.out.println("テイ面の三角形のテイ辺の長さ "+b); 32: System.out.println("テイ面の三角形の高さ "+c); 33: System.out.println("三角チュウの高さ "+a); 34: System.out.println("体積 "+san); 35: System.out.println(""); 36: System.out.println("円チュウの体積"); 37: System.out.println("円の半径 "+c); 38: System.out.println("円チュウの高さ "+a); 39: System.out.println("体積 "+en); 40: System.out.println(""); 41: } 42: }
[nw0650:~/prog2/rep3] j06050% java taiseki3 四角スイの体積 縦の長さ 2 横の長さ 6 高さ 4 体積 16 三角チュウの体積 テイ面の三角形のテイ辺の長さ 6 テイ面の三角形の高さ 4 三角チュウの高さ 2 体積 24 円チュウの体積 円の半径 4 円チュウの高さ 2 体積 100.48
00: keisanクラス開始。 01: double型でpaiに3.14をセット。 02: shikakusuiのメソッド(実際の計算=四角錐の体積の公式)開始。 03: shikakusuiを計算、結果を返す。 04: shikakusuiのメソッド終了。 05: sankakuchuのメソッド(実際の計算=三角柱の体積の公式)開始。 06: sankakuchuを計算、結果を返す。 07: sankakuchuのメソッド終了。 08: enchuのメソッド(実際の計算=円柱の体積の公式)開始。 09: enchuを計算、結果を返す。 10: enchuのメソッド終了。 11: keisanクラスの終了。 12: taiseki3のクラス開始。 13: メソッド開始。 14: int型でa,b,c,shi,sanの領域確保。 15: double型でenの領域確保。 16: クラスkeisan内のメソッドを利用するため、 クラスkeisanのオブジェクト変数enzanを作成。 17: aに2をセット。 18: bに6をセット。 19: cに4をセット。 20: enzanオブジェクト。shikakusuiメソッド使用。 ( )内の指示から、x = a, y = b, z = c で計算。 21: enzanオブジェクト。sankakuchuメソッド使用。 ( )内の指示から、x = b, y = c, z = a で計算。 22: enzanオブジェクト。enchuメソッド使用。 ( )内の指示から、x = c, y = a で計算。 23: 空白を出力(=改行)。 24: 「四角錐の体積」を出力(漢字の錐は出力できずカタカナ)。 25: 「縦の長さ」を出力(aにセットしてある値)。 26: 「横の長さ」を出力(bにセットしてある値)。 27: 「高さ」を出力(cにセットしてある値)。 28: 「体積」を出力(shiでやった計算結果)。 29: 空白を出力(=改行)。 30: 「三角チュウ」を出力(漢字の柱は出力できずカタカナ)。 31: 「テイ面の三角形のテイ辺の長さ」を出力(bにセットしてある値)。 (漢字の底は出力出来ずカタカナ)。 32: 「テイ面の三角形の高さ」を出力(cにセットしてある値)。 33: 「三角チュウの高さ」を出力(aにセットしてある値)。 34: 「体積」を出力(sanでやった計算結果)。 35: 空白を出力(=改行)。 36: 「円チュウの体積」を出力。 37: 「円の半径」を出力(cにセットした値)。 38: 「円チュウの高さ」を出力(aにセットした値)。 39: 「体積」を出力(enでやった計算結果)。 40: 空白を出力(=改行)。 41: メソッド終了。 42: taiseki3のクラス終了。
00: class keisan{ 01: double pai = 3.14; 02: int rippoutai(int x){ 03: return x*x*4; 04: } 05: double enhyo(int x){ 06: return 4 * pai * x * x; 07: } 08: } 09: class hyomenseki2 { 10: public static void main(String args[]) { 11: int a,b,rip; 12: double en; 13: keisan enzan = new keisan(); 14: a = 3; 15: b = 5; 16: rip = enzan.rippoutai(a); 17: en = enzan.enhyo(b); 18: System.out.println(""); 19: System.out.println("立ポウ体の表面積"); 20: System.out.println("1辺の長さ "+a); 21: System.out.println("表面積 "+rip); 22: System.out.println(""); 23: System.out.println("円の表面積"); 24: System.out.println("円の半径 "+b); 25: System.out.println("表面積 "+en); 26: System.out.println(""); 27: } 28: }
[fukuchihirokazu-no-ibook-g4:~/prog2/rep3] j06050% java hyomenseki2 立ポウ体の表面積 1辺の長さ 3 表面積 36 円の表面積 円の半径 5 表面積 314.0
00: keisanクラスの開始。 01: double形でpaiに3.14をセット。 02: rippoutaiメソッド(実際の計算=立方体の表面式の公式)を開始。 03: rippoutaiを計算し、結果を返す。 04: rippoutaiメソッド終了。 05: enhyoメソッド(実際の計算=円の表面積の公式)を開始。 06: enhyoを計算し、結果を返す。 07: enhyoメソッド終了。 08: keisanクラスの終了。 09: hyomenseki2のクラス開始。 10: メソッド開始。 11: int型でa,b,ripの領域確保。 12: double型でenの領域確保。 13: クラスkeisan内のメソッドを利用するため、 クラスkeisanのオブジェクト変数enzanを作成。 14: aに3をセット。 15: bに5をセット。 16: enzanオブジェクト。ripputaiメソッド使用。 ( )内の指示から、x = a で計算。 17: enzanオブジェクト。enhyoメソッド使用。 ( )内の指示から、x = b で計算。 18: 空白を出力(=改行)。 19: 「立ポウ体」を出力(漢字の方は出力出来ずカタカナ)。 20: 「1辺の長さ」を出力(aにセットした値)。 21: 「表面積」を出力(ripでやった計算結果)。 22: 空白を出力(=改行)。 23: 「円の表面積」を出力。 24: 「円の半径」を出力(bにセットした値)。 25: 「表面積」を出力(enでやった計算結果)。 26: 空白を出力(=改行)。 27: メソッド終了。 28: hyomenseki2のクラス終了。
00: import java.io.*; 01: class factrial { 02: public static void main(String args[]) throws Exception { 03: BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 04: System.out.print("input natural number: "); 05: int num = (new Integer(in.readLine())).intValue(); 06: System.out.print("for文を使った階乗計算 => "); 07: System.out.println(num + "! =" + factfor(num)); 08: System.out.print("再帰呼び出しによる階乗計算 => "); 09: System.out.println(num + "! =" + factrec(num)); 10: } /* for 文を使った階乗の計算 */ 11: static int factfor(int number) { 12: int factrial = 1; 13: for (int i = 1; i <= number; i++) { 14: factrial = i * factrial; 15: } 16: return(factrial); 17: } /* 再帰による階乗の計算 */ 18: static int factrec(int number) { 19: if (number == 0) return(1); 20: return(number * factrec(numebr-1)); 21: } 22: }
[fukuchihirokazu-no-ibook-g4:~/prog2/rep3] j06050% java factrial input natural number: 4 for文を使った階乗計算 => 4! =24 再帰呼び出しによる階乗計算 => 4! =24
00: java.io.*をインポート。 01: factrialのクラス開始。 02: メソッド開始。 03: 数値の入力を受け付けるための領域確保。 04: 「input natural number:」を出力。 05: 数値の入力、受付。 06: 「for文を使った階乗計算 => 」を出力。 07: 「入力した数値」「!」「=」「factfor()の計算結果」の順に出力。 08: 「再帰呼び出しによる階乗計算 => 」を出力。 09: 「入力した数値」「!」「=」「factrec()の計算結果」の順に出力。 10: メソッド終了。 11: factforのメソッド(for 文を使った階乗の計算)を開始。 12: int型でfactrialに1をセット。 13: for文開始。初期値i = 1 として、i が number を上回るまで + i 。 14: factrial × i を計算。 今回の場合は1 x 1 x 2 x 3 x 4 となる。 15: for文終了。 16: 計算結果を返す。 17: factforのメソッドを終了。 18: factrecのメソッド(再帰による階乗の計算)を開始。 19: if文。もし入力された値が0なら、計算結果は1を返す。 20: 入力されたのが0以外の場合、 (入力数値)x ( 入力数値 - 1) x ((入力数値 -1)-1) x ・・を繰り返す。 今回の場合は 4 x 3 x 2 x 1 となる。 21: factrecのメソッド終了。 22: factrialクラスの終了。