計算機ネットワーク Ⅰ・第 2 回レポート


問題

次の問(3問)を解いてレポートを作成せよ。

  1. 第5章 p.6 問 5.5.2
    (参考: Point.java, ColorPoint.java
    注: setDepth, getDepth以外の方法で depthの値を参照できないようにすること。
    テスト用のmainメソッド(DeepPointTest.java

    public class DeepPointTest {
        public static void main(String args[]) {
            Point p = new Point(10, 20);
            p.move(1, -1);
            p.print();
            System.out.println();
            
            DeepPoint dp = new DeepPoint(20, 30, 5);
            dp.move(1, -1);
            dp.print();
            System.out.println();
    
    	dp.depth = 20;    // コンパイル時にエラーになることを確認してコメントアウトしておくこと
    	dp.setDepth(8);
    
            Point[] pts = new Point[2];
            pts[0] = p; pts[1] = dp;
            
            int i;
            for (i=0; i<2; i++) {
                pts[i].moveAndPrint(10, 10);
                System.out.println();
            }
        }
    }
    
    その出力例:
    (11, 19)
    (((((21, 29)))))
    (11, 19)(21, 29)
    ((((((((21, 29))))))))((((((((31, 39))))))))
    
  2. 第6章 p.4 問 6.1.2(改)
    注: アニメーションは例題 Guruguru.javaの円(楕円)運動と違っていれば何でも良い。 動きではなくて、色のアニメーションでも良い。

    問6.1.2だけでは物足りない人は6章 p.9 問 6.3.4にも挑戦するべし。

  3. 参考: クイックソート

    static void swap(int[] v, int i, int j) {
        int tmp = v[i];
        v[i] = v[j];
        v[j] = tmp;
    }
    
    static void qsort(int[] v, int left, int right) {
        int i, last;
    
        if (left >= right) return;
        swap(v, left, (left+right)/2);
        last = left;
        for (i=left+1; i <= right; i++) {
            if (v[i] < v[left]) {
                swap(v, last+1, i);
                last++; 
            }
        }
        swap(v, left, last);
        qsort(v, left, last-1);
        qsort(v, last+1, right);
    }
    

  4. 第7章 p.7 問 7.3.3 (参考 Pphttpd.java

    ヒント:


注意


Koji Kagawa (kagawa@eng.?????)