グラフィックス基礎及び実習 2019年度 第9回

課題A(self) 完成目標: 今回の実習終了10分前まで

この課題はコンピュータ使用禁止です.解答は配布した用紙に記してください.

2018年度定期試験の [1] をやりなさい.問題は こちら(学内アクセス限定)

課題B(self) 完成目標: 今回の実習終了まで

この課題はコンピュータ使用禁止です.解答は配布した用紙に記してください.

2018年度定期試験の [2] をやりなさい.問題は こちら(学内アクセス限定)

課題C(TA) 締め切り: 次回実習開始直後

この課題は,課題A,Bのチェックを受けてからやってください 

課題A,B のプログラム Zako.java, ZakoMain.java と Boss.java を実際に作りなさい.

課題S(omake)

複素数を扱うクラスを作ろう.

step1

以下のAPI仕様を満たす Complex.java と,Complexクラスの全てのメソッドを呼んで動作確認するmainメソッドを書いた G09exS.java を作る. 以下の仕様からわかるように,フィールドは非公開としよう

コンストラクタ

Complex(double re, double im)
re を実部の値,im を虚部の値にもつインスタンスを生成する
Complex()
\( 0 + 0i \) を値にもつインスタンスを生成する

メソッド

void setRe(double re)
このインスタンスの実部の値を re にする
void setIm(double im)
このインスタンスの虚部の値を im にする
double getRe()
このインスタンスの実部の値を返す
double getIm()
このインスタンスの虚部の値を返す
Complex add(Complex z)
このインスタンスに z を加えた新しいインスタンスを返す
static Complex add(Complex z1, Complex z2)
z1 + z2 を返す

ヒント: どちらのaddメソッドも,インスタンスの値を変更するものではないですね.new してそれを return したらよいでしょう.

step2

Complexクラスを拡張したクラス Complex2 をつくろう. このクラスは,次のようなものとすること.

(1) コンストラクタの仕様はComplexと同じ

(2) 次の仕様のメソッドを定義する

String toString()
このインスタンスが表す複素数を String にして返す.戻り値の例は(注)へ.

(3) さらに次のようなものを計算するメソッドを追加しよう.乗算,絶対値,共役複素数.

注: 上記の toString メソッドは,Objectクラスで定義されているものを「再定義(オーバーライド)」することになります(教科書p.81参照). System.out.printlnにオブジェクトを渡すと,そいつのtoStringを呼んで返ってきた文字列を使って表示してくれるので,こんなことができるようになります.

Complex2 z1 = new Complex2(2.0, 3.0);
Complex2 z2 = new Complex2(2.0, -3.0);
System.out.println(z1);                → 出力例:    2.0+3.0i
System.out.println(z2);                → 出力例:    2.0-3.0i

step3

できあがった Complex2 クラスを使うプログラムを作り,動作確認しよう. さらに,次の問の答えを計算してみよう.

\( z = 2\cos{\frac{5}{3}}\pi + 2i \sin{\frac{5}{3}}\pi \) とおくとき,\( z^6 \) はいくつか? 手計算の結果と比較すること.


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-14 (金) 09:02:37