#author("2018-06-15T15:32:15+09:00","default:takataka","takataka")
#author("2018-06-15T16:40:58+09:00","default:takataka","takataka")
*グラフィックス基礎及び実習 2018年度 第9回 [#e9701092]
 
#contents
 
//&color(#ff0000){工事中}; 

**課題A(self) 完成目標: 今回の実習終了15分前まで [#kadaiA]
**課題A(self) 完成目標: 今回の実習終了10分前まで [#kadaiA]

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


2017年度定期試験の [2] をやりなさい.

ちなみに,double型の値を int 型に変換するような場合,C言語同様に「キャスト演算子」を使えます.例えば,double型変数 x に 2.7 が代入されている場合,
 (int)x
の値は 2 になります(切り捨て).Java のコンパイラはC言語より厳密なチェックを行いますので,C言語ではキャストしなくても怒られない(のでかえってバグのもとになりやすい)ケースでも,Javaだと怒られることがあります.
**課題B(self) 完成目標: 今回の実習終了まで [#kadaiB]

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


2017年度定期試験の [3] をやりなさい.




**課題C(TA) 締め切り: 次回実習開始直後 [#kadaiC]
//&color(#ff0000){工事中}; 

&color(#ff0000){この課題は,課題A,Bのチェックを受けてからやってください}; 

課題A のプログラム Ice.java と Hoge.java を実際に作りなさい.
**課題S(omake)  [#kadaiS]
//&color(#ff0000){工事中}; 

複素数を扱うクラスを作ろう.
***step1 [#b5fa30c6]

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

''コンストラクタ''

:Complex(double re, double im) | re を実部の値,im を虚部の値にもつインスタンスを生成する
:Complex() | &mathjax{ 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 [#o3dd8c02]

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

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

(2) 次の仕様のメソッドを定義する
:String toString() | このインスタンスが表す複素数を String にして返す.戻り値の例は(注)へ.

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

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

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

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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS