課題#3


(1)3種類以上の体積を求めるクラスを作成し、具体的な値を入力しプログラムを実行せよ。
(2)2種類以上の表面積を求めるクラスを作成し、同様に実行せよ。
(3)例題を参考に、階乗計算を再帰プログラムにより作成し、for文による階乗計算との違いを考察せよ。


i.円柱の体積と表面積
ii.円錐の体積と表面積
iii.球の体積と表面積
iv.実行結果
v.階乗計算
vi.感想


i.円柱の体積と表面積


【entyu.java】
sorce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class entyu {

    double taiseki(int r,int h){
        return r*r*3.14*h;
    }

    double menseki(int r,int h){
        double teimen;
        double hyou;
        teimen = r * r * 3.14;
        hyou = 2 * r * 3.14 * h;
        return teimen * 2 * hyou;
    }
}		    


実行結果はこちら==> iv.実行結果

~・~・~・~・~・~・~・~【考察】~・~・~・~・~・~・~・~


ii.円錐の体積と表面積


【ensui.class】
sorce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ensui {
    double taiseki(int r,int h){
        entyu obj1 = new entyu();

        return obj1.taiseki(r,h) / 3;
    }
    double menseki(int r,int h){
        double a,b,c;
        a = r * r * h * h;
        b = a * 3.14;
        c = b * (2*r*3.14/360);
        return c + r*r*3.14;
    }
}


実行結果はこちら==> iv.実行結果

~・~・~・~・~・~・~・~【考察】~・~・~・~・~・~・~・~


iii.球の体積と表面積


【kyu.class】
sorce
1
2
3
4
5
6
7
8
9
10
11
class kyu{
    double taiseki(int r){
        double d;
        d = 4*r*r*r*3.14;
        d = d/3;
        return(d);
    }
    double menseki(int r){
        return 4*r*r*3.14;
    }
}    


実行結果はこちら==> iv.実行結果

~・~・~・~・~・~・~・~【考察】~・~・~・~・~・~・~・~


iv.実行結果


円柱、円錐、球この3つの体積と表面積を求めるクラスを
1つのファイルにまとめて,出力。
【keisan.java】
sorce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class entyu {

    double taiseki(int r,int h){
        return r*r*3.14*h;
    }

    double menseki(int r,int h){
        double teimen;
        double hyou;
        teimen = r * r * 3.14;
        hyou = 2 * r * 3.14 * h;
        return teimen * 2 * hyou;
    }
}
class ensui {
    double taiseki(int r,int h){
        entyu obj1 = new entyu();

        return obj1.taiseki(r,h) / 3;
    }
    double menseki(int r,int h){
        double a,b,c;
        a = r * r * h * h;
        b = a * 3.14;
        c = b * (2*r*3.14/360);
        return c + r*r*3.14;
    }
}
class kyu{
    double taiseki(int r){
        double d;
        d = 4*r*r*r*3.14;
        d = d/3;
        return(d);
    }
    double menseki(int r){
        return 4*r*r*3.14;
    }
}
class keisan{
    public static void main(String args[]){
        int r=3,h=5;
        double entyu_tai;
        double entyu_men;
        double ensui_tai;
        double ensui_men;
        double kyu_tai;
        double kyu_men;

        entyu obj1 = new entyu();
        ensui obj2 = new ensui();
        kyu obj3 = new kyu();

        entyu_tai = obj1.taiseki(r,h);
        entyu_men = obj1.menseki(r,h);

        ensui_tai = obj2.taiseki(r,h);
        ensui_men = obj2.menseki(r,h);

        kyu_tai = obj3.taiseki(r);
        kyu_men = obj3.menseki(r);

        System.out.println("entyu_tai:" + entyu_tai);
        System.out.println("entyu_men:" + entyu_men);
        System.out.println("ensui_tai:" + ensui_tai);
        System.out.println("ensui_men:" + ensui_men);
        System.out.println("kyu_tai:" + kyu_tai);
        System.out.println("kyu_men:" + kyu_men);
    }
}    
実行結果
1
2
3
4
5
6
entyu_tai:141.3
entyu_men:5324.184
ensui_tai:47.1
ensui_men:65.2335
kyu_tai:113.04
kyu_men:113.04


~・~・~・~・~・~・~【考察】~・~・~・~・~・~・~


v.階乗計算


【saiki.java】
sorce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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));

}
		    


~・~・~・~・~・~・~【考察】~・~・~・~・~・~・~

vi.感想


今回の課題は・・・難しいというよりめんどくさい。って感じで、後回しにしてたら時間に追われて大変忙しくなりました。
体積、表面積を求めるのも難なくでき、再帰プログラムもできたんですがね・・・
あと、ソースコードのコンパイル時にひらがなの「る」「を」があるとエラーがでるのであえて抜いてあります。現在原因調査中です。