次の問(3問)を解いてレポートを作成せよ。
第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))))))))
第6章 p.4 問 6.1.2(改)
注: アニメーションは例題
Guruguru.javaの円(楕円)運動と違っていれば何でも良い。
動きではなくて、色のアニメーションでも良い。
問6.1.2だけでは物足りない人は6章 p.9 問 6.3.4にも挑戦するべし。
参考: クイックソート
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);
}
第7章 p.7 問 7.3.3 (参考 Pphttpd.java)
ヒント:
配点は 問1が4点, 問2, 問3は 3点である。
プログラムにはできるだけコメントも多くいれること。
作成した Javaのソース(.java)ファイル、 クラス(.class)ファイル、HTMLファイルなど実行に必要なファイルは全て、 \\stfile\Report\kagawa\CompNet1\Report2\ の下の「s学籍番号」という名前のフォルダにオンライン提出する。
アプレットの場合は appletviewerで実行できることを必ず確認しておくこと。
アプリケーションの場合は javaで実行できることを 確認しておくこと。
自分用のコピーを必ず保存しておくこと。
ソースコード、実行中の画面のハードコピーを Word(もしくはOpenOffice Writer, TeXなど)文書にまとめて、A4用紙に印刷したものも提出すること。
以上の注意が守られていれば、最小限の長さのものでよい。
締切は、8月3日(木)18時
ただし、プログラム自体は期末テスト(7月27日)までに作成しておくこと。