問1,2を全てやりなさい
check
- HTurtle()
- 座標 (200, 200) に 0 度の角度で HTurtle を作成する.
- HTurtle(double x, double y, double angle)
- 座標 (x, y) に angle 度の角度で HTurtle を作成する.
check HTurtle のコンストラクタは,Turtleの(つまりスーパークラスの)コンストラクタを呼び出すだけでよい.引数なしのコンストラクタは,単純に super() を呼ぶだけでok.同様に,3引数コンストラクタは super(x, y, angle) を呼ぶだけでok.
check Q1で書き換える前の hm.length の値は 10 で,書き換えたあとは 6 のはずですね.
問1,2を全てやりなさい
check
9, 3, 3, 3, 7だったとき,「最小値のインデックス」は 1 か 3 のどちらか一方が出力されるように作ればよい.どちらの出力をするかは,プログラム中の1文字を書き換えるだけで変更できるだろう.
教科書p.74の練習問題6.18をやりなさい(PTurtle). ただし,次の手順でやること.
- void draw(double[] path, double x, double y)
- 折れ線 path を,折れ線の座標の原点が (x, y) に平行移動したものを描く.詳しくは教科書の該当箇所の説明(脚注40), 41)も)参照.
// 例1
double[] graph = { 50, 300, 100, 100, 300, 200, 350, 300 };
// 例2 奇数個でも大丈夫?
//double[] graph = { 50, 300, 100, 100, 300, 200, 350 };
// 例3 長さ2のときは?
//double[] graph = { 50, 300 };
// 例4 長さ1のときは?
//double[] graph = { 50 };
// 例5 長さ0のときは?
//double[] graph = { };
// 例6 やつは?
/*
double[] graph = {
200, 175, 200, 100, 140, 100, 140, 120, 160, 120,
160, 100, 100, 100, 100, 175, 125, 175, 125, 150,
175, 150, 175, 175, 275, 175, 275, 150, 325, 150,
325, 175, 350, 175, 350, 100, 290, 100, 290, 115,
310, 115, 310, 100, 250, 100, 250, 175, 250, 100,
350, 100, 350, 300, 325, 300, 325, 275, 75, 275,
75, 250, 350, 250, 350, 300
};
*/
TurtleFrame f = new TurtleFrame(800, 400);
f.addMesh();
PTurtle m = new PTurtle();
f.add(m);
m.speed(1);
m.draw(graph, 0, 0);
m.moveTo(200, 300);
m.draw(graph, 400, 0);
コマンドライン引数として2つの数を指定すると,下図のような図形を描くプログラムを作りなさい. クラス名は G08Rainbow とし,次の要件を満たすようにすること.
1.については,Colorの配列を用いて実現すること(どんな色を使うかは自分で決めればよいが,色数は以下の例以上にすること). 実行結果の図が示すように,色を順番に使って使い果たしたらまた最初の色から順に使うようにすること.
2.については,次のような動作を実現しよう.
$ java G08Rainbow 6 50 ← 引数を二つ指定すると図形を描く $ java G08Rainbow ← 引数を指定しないと以下のメッセージを出して終了 使い方: java G08Rainbow r d r: 三角形の数, d: 斜辺の長さ $ java G08Rainbow 6 50 hoge ← 余分な引数を指定した場合も同様 使い方: java G08Rainbow r d r: 三角形の数, d: 斜辺の長さ $ java G08Rainbow 6 hoge ← 引数が正しい形式でない場合も同様 使い方: java G08Rainbow r d r: 三角形の数, d: 斜辺の長さ
引数が正しい形式でない場合のチェックを行うには,Integer.parseInt() メソッドの例外処理を行えばよい. 教科書8.3節(p.93-)を参考にしよう.
