#author("2021-06-04T19:39:55+09:00","default:takataka","takataka") #author("2021-06-04T19:41:05+09:00","default:takataka","takataka") *グラフィックス基礎及び実習 2021年度 第09回 実習と宿題 [#e9701092] #contents //&color(#ff0000){''工事中''}; //**注意 [#notice] **実習課題A 締切: 当日13:30 [#kadaiA] &color(#00a000){''以下のことをやって,作った二つのソースファイルを moodle の該当の場所へ提出してください.''}; ファイル名の間違いに注意 [[第9回>../#ex09]] 講義資料記載の「ex09 課題A」をやりましょう. **実習課題B 締切: 当日15:15 [#kadaiB] &color(#00a000){''以下のことをやって,作ったソースファイルを moodle の該当の場所へ提出してください.''}; ファイル名の間違いに注意 [[第9回>../#ex09]] 講義資料記載の「ex09 課題B」をやりましょう. 必要に応じて課題Aのプログラムの修正もしてください(提出するのは Boss.java のみです). 課題Aで提出したプログラムに間違いがあった場合は,修正してからこちらの課題に取り組みましょう.提出するのは Boss.java のみです. **宿題 [#hw] &color(#00a000){''次回授業までに必ずやっておくこと''}; 次回の授業の資料(PDFや動画)等は [[こちら>../../2021#ex10]] からどうぞ. + 講義資料を入手.紙でほしい方は各自で印刷してください. > キャンパス内各所に設置されたプリンタで印刷することもできます.くわしくは「ポータル > 情報環境 > マニュアル > [[印刷利用マニュアル>https://www.media.ryukoku.ac.jp/local/manual/printsystem_manual.pdf]]」参照. < + 授業動画を視聴する > 学内の実習室等に設置の PC ではスピーカから音が出ませんので,イヤフォン/ヘッドフォンを用意する必要あり < + 講義資料・授業動画に出てくるプログラムを実際に作って実行してみる **実習課題S(omake) 締切: 次回実習時間終了時 [#kadaiS] &color(#00a000){''これはおまけ課題です.やらなくても減点になりません.やったら加点かも''}; (moodle の「おまけ課題」のところに,「自由課題」というのを書いときました.よかったら見てね) //&color(#ff0000){''工事中''}; 複素数を扱うクラスを作ろう. ***step1 [#b5fa30c6] 以下のAPI仕様を満たす Complex.java を作る. このクラスの全てのメソッドを呼んで動作確認するmainメソッドも書こう. 以下の仕様からわかるように,フィールドは非公開としよう ''コンストラクタ'' :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 クラス に main メソッドを追加して動作確認しよう. 作ったすべてのメソッド等の動作を確認できるようにすること. さらに,次の問の答えを計算させよう. 手計算の結果と比較して確認してね. > &mathjax{ z = 2\cos{\frac{5}{3}}\pi + 2i \sin{\frac{5}{3}}\pi }; とおくとき,&mathjax{ z^6 }; はいくつか? <