次の問(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日)までに作成しておくこと。