_Graphics2011/ex08
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*グラフィックス基礎・演習 2011年度 第8回 [#e9701092]
#contents
//&color(#ff0000){工事中};
**注意 [#b90cec8d]
かめさん使わないプログラムは ~/Graphics2011 に作ろう.
**課題A 締切: 今回の演習終了時(3点) [#kadaiA]
この課題の解答は講義時に配布した用紙に記入し,課題Bのチェックを受ける際にTAさんに提出してください(今回中に課題Bのチェックを受けられそうにない場合は課題Aの用紙のみをTAさんに提出してください).採点は高橋が後日行う予定です.
[[前回課題>Graphics2011/ex07#kadaiC]]の HWsample クラスと同じふるまいをする HW という名前のクラスを作ろう.
次のようにすること.
+HWクラスの定義を紙に書く(G08exAを紙に書く必要はありません).データは可能な限り隠蔽すること
+HW.java と,HW クラスを利用する(main メソッドのみを含む)クラス G08exA を作成
--cpコマンドを用いて前回の G07exC.java をコピーして G08exA.java を作り,それを修正するのがよいでしょう
+動作確認
**課題B 締切: 今回の演習終了時(2点) [#kadaiB]
次のことをやりなさい.
+講義資料と教科書を参照して CStepper クラスを作成
--CStepper.java には p.74 のmainメソッドも書くこと
+p.67の T72.java を CStepper クラスを用いるように書き換えたクラス G08exB を作成
**課題C 締切: 次回演習開始直後(2点) [#kadaiC]
上の課題のHWクラスに,以下の2つのメソッドを追加しよう.
:void pocha() | このインスタンスの体重を15%増にする.
:void printHimando() | このインスタンスのBMI値を求めてそれに応じたメッセージを出力.
出力様式はクラスメソッド版の printHimando と同じ.
ただし,次のことに注意.
-mainメソッドもHWクラスで定義し,上記のメソッドが正しく機能することが確認できるようにすること.
-なるべく既存のメソッド等を利用して楽ができるように考えること.
&jsmath(1.15^{10} = 4.05); やって… &size(10){ぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃ}; (..;
**課題S(おまけ) 締切: 次回演習終了30分前(2点) [#kadaiS]
複素数を扱うクラス Complex を作ろう.
***step1 [#b5fa30c6]
以下のAPI仕様を満たす Complex.java を作る.
-mainもその中に適当に記述したらよい
-以下の仕様からわかるように,データは隠蔽しよう
コンストラクタ
:Complex(double re, double im) | re を実部の値,im を虚部の値にもつインスタンスを生成する
:Complex() | &jsmath( 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]
(1) 上記に次の仕様のメソッドを追加しよう
:String toString() | このインスタンスが表す複素数を String にして返す(注)
注: この toString メソッドは,Objectクラスで定義されているものを「再定義(オーバーライド)」することになります(教科書p.81参照).
System.out.printlnにオブジェクトを渡すと,そいつのtoStringを呼んで返ってきた文字列を使って表示してくれるので,こんなことができるようになります.
#pre{{
Complex z1 = new Complex(2.0, 3.0);
Complex z2 = new Complex(2.0, -3.0);
System.out.println(z1); → 出力例: 2.0+3.0i
System.out.println(z2); → 出力例: 2.0-3.0i
}}
(2) さらに次のようなものを計算するメソッドを追加しよう.乗算,絶対値,共役複素数.
***step3 [#jf8e8a47]
できあがった Complex クラスを使って,次の問の答えを計算してみよう.
&jsmath( z = 2\cos{\frac{5}{3}}\pi + 2i \sin{\frac{5}{3}}\pi ); とおくとき,&jsmath( z^6 ); はいくつか? 手計算の結果と比較すること.
終了行:
*グラフィックス基礎・演習 2011年度 第8回 [#e9701092]
#contents
//&color(#ff0000){工事中};
**注意 [#b90cec8d]
かめさん使わないプログラムは ~/Graphics2011 に作ろう.
**課題A 締切: 今回の演習終了時(3点) [#kadaiA]
この課題の解答は講義時に配布した用紙に記入し,課題Bのチェックを受ける際にTAさんに提出してください(今回中に課題Bのチェックを受けられそうにない場合は課題Aの用紙のみをTAさんに提出してください).採点は高橋が後日行う予定です.
[[前回課題>Graphics2011/ex07#kadaiC]]の HWsample クラスと同じふるまいをする HW という名前のクラスを作ろう.
次のようにすること.
+HWクラスの定義を紙に書く(G08exAを紙に書く必要はありません).データは可能な限り隠蔽すること
+HW.java と,HW クラスを利用する(main メソッドのみを含む)クラス G08exA を作成
--cpコマンドを用いて前回の G07exC.java をコピーして G08exA.java を作り,それを修正するのがよいでしょう
+動作確認
**課題B 締切: 今回の演習終了時(2点) [#kadaiB]
次のことをやりなさい.
+講義資料と教科書を参照して CStepper クラスを作成
--CStepper.java には p.74 のmainメソッドも書くこと
+p.67の T72.java を CStepper クラスを用いるように書き換えたクラス G08exB を作成
**課題C 締切: 次回演習開始直後(2点) [#kadaiC]
上の課題のHWクラスに,以下の2つのメソッドを追加しよう.
:void pocha() | このインスタンスの体重を15%増にする.
:void printHimando() | このインスタンスのBMI値を求めてそれに応じたメッセージを出力.
出力様式はクラスメソッド版の printHimando と同じ.
ただし,次のことに注意.
-mainメソッドもHWクラスで定義し,上記のメソッドが正しく機能することが確認できるようにすること.
-なるべく既存のメソッド等を利用して楽ができるように考えること.
&jsmath(1.15^{10} = 4.05); やって… &size(10){ぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃぽちゃ}; (..;
**課題S(おまけ) 締切: 次回演習終了30分前(2点) [#kadaiS]
複素数を扱うクラス Complex を作ろう.
***step1 [#b5fa30c6]
以下のAPI仕様を満たす Complex.java を作る.
-mainもその中に適当に記述したらよい
-以下の仕様からわかるように,データは隠蔽しよう
コンストラクタ
:Complex(double re, double im) | re を実部の値,im を虚部の値にもつインスタンスを生成する
:Complex() | &jsmath( 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]
(1) 上記に次の仕様のメソッドを追加しよう
:String toString() | このインスタンスが表す複素数を String にして返す(注)
注: この toString メソッドは,Objectクラスで定義されているものを「再定義(オーバーライド)」することになります(教科書p.81参照).
System.out.printlnにオブジェクトを渡すと,そいつのtoStringを呼んで返ってきた文字列を使って表示してくれるので,こんなことができるようになります.
#pre{{
Complex z1 = new Complex(2.0, 3.0);
Complex z2 = new Complex(2.0, -3.0);
System.out.println(z1); → 出力例: 2.0+3.0i
System.out.println(z2); → 出力例: 2.0-3.0i
}}
(2) さらに次のようなものを計算するメソッドを追加しよう.乗算,絶対値,共役複素数.
***step3 [#jf8e8a47]
できあがった Complex クラスを使って,次の問の答えを計算してみよう.
&jsmath( z = 2\cos{\frac{5}{3}}\pi + 2i \sin{\frac{5}{3}}\pi ); とおくとき,&jsmath( z^6 ); はいくつか? 手計算の結果と比較すること.
ページ名: