オブジェクト指向プログラミング(実習1回目)


以下の課題を解け. 必要に応じて講義資料を参考にすること.講義資料は ここにある. 課題の提出期限および提出方法は以下の通りとする.

課題1:

Exercise1 という名前のプロジェクトを作成し, その中に Exercise1 という名前のメインクラス(main()メソッドを持ったクラス)を作成せよ.
さらに, そのメインクラスを実行したときにコンソール上に「Exercise1完成」という文字列が表示されるように, メインクラスを書き換えよ.
なおこの課題は, 完成したソースコードのみ提出すること.

課題2:

Exercise2 という名前のプロジェクトを作成し, その中に Exercise2 という名前のメインクラスを作成せよ.
次に, Exercise2 クラスを以下のように書き換えよ.
さらに, 「System.out.println("found");」の行にブレークポイントを置いてこのプログラムをデバッグ実行せよ.
ブレークポイントに止まったときの変数a, b, cの値はいくつか? 完成したソースコードを印刷し, 余白にa, b, cの値を記載して提出すること.

public class Exercise2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int a, b, c;
        for (a = 1;; a++) {
            for (b = 1; b <= a; b++) {
                for (c = 1; c <= b; c++) {
                    if (b * b + c * c == a * a) {
                        System.out.println("found");  // この行にブレークポイントを置く
                    }
                }
            }
        }
    }
}

課題3:

Exercise3 という名前のプロジェクトを作成し, その中に Exercise3 という名前のメインクラスを作成せよ.
次に, Exercise3 クラスを以下のように書き換えよ.
さらに, 与えられた2つの引数x, yのうち大きい方の値を返すようにプログラム中のメソッドmax()を完成させよ.
また, 21と15と27のうちの最大値がコンソールに表示されるようにmain()メソッドを完成させよ.
ただし, main()メソッドの完成に当たっては, メソッドmax()を呼び出して使うこと. 課題は, 完成したソースコードのみ提出すること.

public class Exercise3 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int a, b, c, d, e;
        a = 21;
        b = 15;
        c = 27;
        d = max(a, b);
        System.out.println("21と15の最大値:" + d);
        [ここにコードを書く]
        System.out.println("21と15と27の最大値:" + e);
    }

    public static int max(int x, int y) {
        [ここにコードを書く]
    }
}

課題4(必須ではない):

Exercise4 という名前のプロジェクトを作成し, その中に Exercise4 という名前のメインクラスを作成せよ.
以下のプログラムを参考にし, Exercise4 クラスの中に, int型の引数nを与えたときに,
1/(1*1) + 1/(2*2) + ... + 1/(n*n) の値を計算して double 値で返す再帰関数 f() を作成せよ.
さらに, main() メソッドから f() を呼び出して, 1/(1*1) + 1/(2*2) + ... + 1/(100*100) の値を計算し,
その計算結果がコンソールに出力されるように main() メソッドを書け.
public class Exercise4 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int x;
        double y;
        x = 100;
        [ここにコードを書く]
        System.out.println("1/(1*1) + 1/(2*2) + ... + 1/(100*100) = " + y);
    }

    public static double f(int n) {
        [ここにコードを書く]
    }
}