3,表面積を求めるクラス[球体、四角柱]
ソースコード
1. class rep{
2. double kyutai(int r){
3. return(4 * Math.PI * r * r);
4. }
5. double sikakuchuu(int a,int b,int h){
6. return( 2 * (a * b + (a + b) * h));
7. }
8. }
9.
10.class hmenseki {
11. public static void main(String args[]){
12. double v, w;
13. int x, y, z;
14. rep keisan = new rep();
15. x = 4;
16. y = 5;
17. z = 6;
18. v = keisan.kyutai(y);
19. w = keisan.sikakuchuu(x, y, z);
20. System.out.println("球体の半径 = " + y);
21. System.out.println("球体の表面積 = " + v);
22. System.out.println();
23. System.out.println("四角柱の縦 = " + x);
24. System.out.println("四角柱の横 = " + y);
25. System.out.println("四角柱の高さ = " + z);
26. System.out.println("四角柱の表面積 = " + w);
27. }
28.}
実行結果
球体の半径 = 5
球体の表面積 = 314.1592653589793
四角柱の縦 = 4
四角柱の横 = 5
四角柱の高さ = 6
四角柱の表面積 = 148.0
4,考察[表面積]
- 球体、四角柱の表面積を求めるプログラムを作った。
- あとは体積を求めるプログラムとほぼ同じ操作をしている。
7,階上計算
ソースコード
1. import java.io.*;
2.
3. class factrial {
4.
5. public static void main(String args[]) throws Exception {
6.
7. BufferedReader in = new BufferedReader(new
8. InputStreamReader(System.in));
9.
10. System.out.print("input natural number: ");
11. int num = (new Integer(in.readLine())).intValue();
12.
13. System.out.print("for文による階上計算 => ");
14. System.out.println(num + "! =" + factfor(num));
15.
16. System.out.print("再帰呼び出しによる階上計算 => ");
17. System.out.println(num + "! =" + factrec(num));
18.
19. }
20.
21. /* for文を使った階上の計算*/
22. static int factfor(int number) {
23.
24. int factrial = 1;
25.
26. for (int i = 1; i <= number; i++) {
27. factrial = i * factrial;
28. }
29.
30. return(factrial);
31.
32. }
33.
34. /* 再帰による階上の計算*/
35. static int factrec(int number) {
36.
37. if (number == 0 ) return(1);
38. else return( number * factrec(number-1) );
39.
40.}
41.
42.}
実行結果
input natural number: 5
for文を使った階乗計算 => 5! =120
再帰呼び出しによる階乗計算 => 5! =120
6,考察(for文と再帰呼び出しの違い)
- for文の階上計算について
まず変数factrial、iに1を代入している。次にfactrialに「i * factrial」を
代入している。そして入力した数までiに1を加え続ける。
factrial(1)=1*factrial(0)=1*1から始まり、1回ずつfactrial(2)=2*factrial(1)=2*
1、‥‥、factrial(5)=5*factrial(4)=5*4*3*2*1と計算していく。
- 再帰プログラムについて
1回ずつ計算を進めていくfor文と違い、ここでは
factrec(5)=5*factrec(4)=5*4*factrec(3)=5*4*3*factrec(2)=
5*4*3*2*factrec(1)=5!*factrec(0)=5!を使い、いっきに計算することができる。
7,反省、感想
今回の課題はプログラミング2で初めて徹夜せずにすんだ。
しかし、妥協したところもあるのでもうちょっと頑張ればもうちょっとましになっ
たと思う。