• 締切済み

はじめまして。今回、大学でのjavaの課題の最後の方がわからなくって、

はじめまして。今回、大学でのjavaの課題の最後の方がわからなくって、皆さんにアドバイスをいただきたいと思い質問させていただきます。問題の文章が「2つの端点が(1,1) (8,8)であるLineSegment を1 つ作成し、順次、linearTransfer した線分を10 個作成し、10 個の線分の形状を画面表示するプログラムを作成しなさい。10 個の線分は、後に利用することを考慮し、配列に格納しなさい。」というもので、ソースが、 /*キーボード入力がありますが、すでに与えられており、字数の関係上省略させていただきます*/ class Point{ double x;//double xを定義 double y;//double xを定義 Point(){ this.x = 0;//xを0にする this.y = 0;//yを0にする } Point(double x, double y){//ポイント内のx,y を定義 this.x = x; this.y = y; } Point linearTransfer(){ double x = 6 * this.x + 4 * this.y; double y = -2 * this.x + 1 * this.y; Point p = new Point(x , y); return p; } } class LineSegment{ public static void main(String[] args){ Input in = new Input(); double x = in.inputDouble("Input Point :"); double y = in.inputDouble("Input Point :"); double x1 = in.inputDouble("Input Point :"); double y1 = in.inputDouble("Input Point :"); Point p = new Point(x, y); p = p.linearTransfer(); Point q = new Point(x1, y1); q = q.linearTransfer(); ここまでできたのですが、ここからができなくって困っております。皆さんアドバイス宜しくお願いいたします。

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

座標の入力方法なんてどうでもいいのよ。 そんなところは最後に調整すればいいところよ。 考え方をいくつか書いていくわね。 ・mainメソッドを持つクラスはまったく別に用意するべきよ。 ・LineSegmentはプロパティとして二つの座標を持つオブジェクト。 ・linearTransferメソッドの引数はLineSegment。 ・linearTransferメソッドの戻り値もLineSegment。 ・linearTransferメソッドとは別にpointTransferメソッドを作るときれいよ。 ・pointTransferメソッドの引数と戻り値はPoint ・まず最初に、一つ目のLineSegmentを作成 あとはこんな感じ LineSegment[] result = new LineSegment[10]; Point p = new Point(x, y); Point q = new Point(x1, y1); LineSegment start = new LineSegment(p, q); result[0] = linearTransfer(start); for (int i = 1; i < 10 ;i++ ) { result[i + 1] = linearTransfer(result[i]); } あとはここに描画をつけるだけね。 そのくらいは自分でやってね。

12ponpon12345
質問者

補足

返信遅くなって申し訳ありません。 丁寧なアドバイスありがとうございます。アドバイスをもとに頑張って終わらせます。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

最後のほうというか ほとんどできていなんじゃないかしら? というか問題が理解できていなんじゃなくて? まず 2つの端点が(1,1)(8,8)であるLineSegment これを表現するところからはじめないとダメよ。

12ponpon12345
質問者

補足

そうなんですか!?正直問題をあんまり理解できてません。考えとしては、その2つの端点の値はキーボードから入力して、linearTransferした後、計算した値をまたlinearTransferで計算して、それを10回繰り返すと考えています。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

今の段階で「できていること」「できていないこと」を, それぞれ日本語で書いてみてください. 「できていないこと」について, なぜ「できていない」のか原因はわかりますか?

12ponpon12345
質問者

補足

今できているのが、キーボードから入力して格納後、その値をLinearTransferで計算して画面に出力するところまでできてます。できていないのが、順次、linearTransfer した線分を10 個作成するところで、配列をつくりfor文でループさせるのかなぁ、と考えたのですが、どのように書けばいいのかが良くわかっていません。

関連するQ&A