以下のコードで、下記の現状のコードのコメントような仕様のメソッドを持つ長方形クラスRectを実装して「得たい実行結果」のような実行結果を得たいのですが、以下のコードだと「現状の実行結果」のようになってしまいます。
コメントを頼りに、初心者なりに自分のできるところまで書いたのですが、どうしても思うように動いてくれなくて困っています。。
union、isInside、printlnの3メソッドのどこをどのように修正すれば良いか、教えていただければと思います。
申し訳ありませんが、よろしくお願いします。。
x1,y1,x2,y2はそれぞれ2つの頂点( x1, y1 )と( x2, y2 )を表す4変数とします。
完全に宿題の丸投げにしか見えない。
union()はフィールドを0初期化しただけの新しいRectインスタンスを返しているだけだし、println()は常に[1, 1; 5, 6]としか出力しない実装になってる。
これで「コメント通りに実装したつもりなのですが」って言える方がどう考えてもおかしい。
本当に真剣に取り組んだ結果なのだとしたら、まず日本語で書かれた問題文を読む、という事ができていないので、プログラミング以前の問題。
真面目に答えるなら「小学校の勉強から復習しよう」という回答になっちゃいますが…。
ひょっとして釣りアカウントでしょうか?
すみません、釣りアカウントではありません。
確かに、この内容だと「コメント通りに実装」というのはおかしいですね。。
申し訳ありません。
コメント通りに実装したつもりなのですが
→コメントを頼りに、初心者なりに自分のできるところまで書いたのですが
と修正しておきます。
java初心者なもので、全然できていないかも知れませんが、自分なりに色々調べてここまで書いたものだったのですが、丸投げのように見えてしまい、不快な思いをさせてしまい申し訳ありませんでした。。
じゃあ質問を編集し、まずunion()とprintln()メソッドを実装する上で、具体的にどこがわからないのかをちゃんと言語化してください。
これらのメソッドで実装が必要な内容は「日本語で」書かれていますので、「日本語で」のその実現手順を「あなたの言葉で」書けるはずです。ここまではJavaの知識とは無関係なので「Java初心者だからわからない」という事がありえません。
その中で、あなたがJavaのプログラムとして完成される上でわからない「技術的な課題」を説明しましょう。
わからない箇所は以下になります。
質問以前の問題でお手数をおかけしてしまい申し訳ありません。
unionを実装する際に
引数として与えられた長方形と自身の長方形とを含む最小の長方形を新たに生成して返却する
→「最小の長方形を新たに生成」の部分をどのようにかけば良いのかわからないです。
printlnを実装する際に、出力する際にどのように値を受け取り、それをどのような形式で出力するのかがわからないです。
あなたが知りたいのは本当に「書き方」なんですか?
「与えられた長方形と自身の長方形とを含む最小の長方形」の求め方はちゃんとわかっているんですか?
日本語でその手順を説明できますか?
それがわかっていれば、どんな教材を使っているのであれ「書き方」なんてものはこの問題に取り組むまでに確実に学ぶはずで、「書き方」がわからない、という質問が出ること自体がどう考えてもおかしいんですよ。
なので、これは単に「問題文の意味が理解できていない」というレベルの話でしかなく、スクールに通うかマンツーマンで指導できるメンターを雇うなどしないと、根本的な解決に至らないと思ってますが。
というか、まず「書き方」なんてもんは教材を遡って復習してくれ、という話でしかなく、本当に書き方がわからないのだとしたら、この問題に取り組むまでに学ぶべきことを色々すっ飛ばしすぎです。
すみません、求め方も分かっていないです。。
書き方という表現は確かに、そのように受け取られても仕方ありませんね…いろいろと申し訳ありません…
編集後の質問を読んで:
> 「最小の長方形を新たに生成」の部分をどのように求めればよいか、分からないです。
(※gentaroさんがコメントに書かれている通りだと思いますが)まずは自分の頭を使って紙とペン、つまり手で問題を解けないとプログラミングできないです。
「2つの矩形 重なり」などと検索するヒットすると思いますが、検索するまでもなく、例えば2つの矩形(長方形)の横方向の辺を見て、開始X座標から終了X座標のある区間が重なっていたら、その2つの矩形は重なっている可能性がある、と言うことです。実際に紙に描いてみれば分かるはずです。
ところでRectMain.java中の Rect r1 = new Rect(1, 1, 4, 4);のコードですが、これは正しいのでしょうか。(1,4), (1,4)で、同じ1つの頂点を指しています。
はい。。ご指摘ありがとうございます。
質問をするまでの考えが足りていなかったことは良くわかりました。。
>ところでRectMain.java中の Rect r1 = new Rect(1, 1, 4, 4);のコードです>が、これは正しいのでしょうか。(1,4), (1,4)で、同じ1つの頂点を指してい>ます。
RectMain.javaは修正不可ですので、これであっているはずです。
> RectMain.javaは修正不可ですので、これであっているはずです。
論理的におかしなこと言ってるのわかってます?
そもそもnew Rect(1, 1, 4, 4)が何を意味しているのか確認して、それを正しく表現するべくRectを書くべきなのですよ。
あなたの回答
tips
プレビュー