質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

955閲覧

2点間距離のプログラミング作成について

退会済みユーザー

退会済みユーザー

総合スコア0

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1グッド

0クリップ

投稿2021/04/28 08:20

編集2021/04/28 10:11

#include <iostream>
// (x,y)平面上の点のクラス
class twoD {
public:
// デフォルトコンストラクタ。(x,y)=(0,0), zero=0.0;
twoD() {
x = 0.0; y = 0.0; zero = 0.0;
}
// 引数付きコンストラクタ(x=xx, y=yy, zero=0.0)
twoD(double xx, double yy) {
x = xx; y = yy; zero = 0.0;
}
// デストラクタ
~twoD() {
std::cout << "finished" << std::endl;
}
// 引数で与えたtwoD型の点との距離の二乗
double distance(twoD p) {
return (p.x - x) * (p.x - x) + (p.y - y) * (p.y - y);
}
double x, y;
private:
double zero;
};
int main() {
// pについてはデフォルトコンストラクタが呼び出される。
twoD p, q(2.0, 3.0);
// dはpとqとの距離の二乗
double d = p.distance(q);
std::cout << "distance between p and q is " << d << std::endl;
}
このソースファイルについての質問で
1つ目がclass twoDのpualicなメンバ関数 double distance(twoD p)を(p.x,p.y)とメンバー(x.y)との距離を返す関数として実際し直すことで
2つ目がclass twoDの宣言内にpublicなメンバ関数 double radius()を原点(0.0,0.0)とメンバー(x.y)との距離を返す関数として実装すること
3つ目が(p.x,p.y)=(2.0,3.0)とするtwoDクラスのオブジェクトpと(q.x,q.y)=(0.0,5.0)とするtwoDクラスのオブジェクトqをmain()関数中で宣言し、各オブジェクトの原点との距離、オブジェクト間の距離を標準出力に表示する。
と言うものがわかりません。
答えてくれる方よろしくお願いします。

coolwind0202👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/04/28 08:21

ソースコードはMarkDownの<code>ブロック内に貼り付けてください。 ```言語名(HTML,CSS等) ソースコード ``` 上記のようにしてみてください。
dodox86

2021/04/28 08:29 編集

具体的にどこが分からないのか分からないのですが、 1. ある点からの距離を求める方法(単に数学の観点)が分からないのか。 2. 1は分かっているが、C++のメンバー関数として切り出し、実装する方法が分からないのか。 3. 標準出力に表示(出力)するということがどういうことなのか分からないのか。 4. 1から3、ひっくるめて全部分からないのか をはっきりさせましょう。今のご質問内容では「提示コードをもとに、答えを教えて」で、ほとんど丸投げ感があります。
退会済みユーザー

退会済みユーザー

2021/04/28 08:30

粗末な質問文ですみません。 率直に言うと1〜3全て分かりません。 色々とネットで検索をかけてみたのですが 参考になるようなソースコードが見つからず(本当はあるのかもしれないが自分が理解できていないのかもしれない) 手始めにどのような物を変更していけばいいのかわかりません。
dodox86

2021/04/28 08:34

1が分からないのでは、まず三平方の定理(中学数学)を学びなおす必要があるのでは。C++が分かっていないならその基礎からも、ですし。シューティングゲームのプログラミングの解説の最初の方で良く出てきます。
K_3578

2021/04/28 08:40

というか全く分かってないのによくこんなソース書けたなって思ったけどファイルってことはどこからか 取ってきたって感じですかね。
K_3578

2021/04/28 08:45 編集

質問文改変して、次は退会かな。 改変しても履歴から誰でも見れるよ元の内容 見られて困る物なら運営への問い合わせで削除して貰うことをおすすめしますよ
dodox86

2021/04/28 08:51

@質問者さん [2021/04/28 17:42]の質問内容編集を読んで: 質問内容への誠実な対応をすれば有益な回答をいただけるかもしれないのに、残念なことです。既に、回答もいただいていますね。
dodox86

2021/04/28 08:54

でもって、超速の退会。
K_3578

2021/04/28 09:00

退会する未来予知しました。これで私も予言者ですね() とりあえず一応運営に質問文戻して貰えるように問い合わせておきます。
guest

回答1

0

1つ目がclass twoDのpualicなメンバ関数 double distance(twoD p)を(p.x,p.y)とメンバー(x.y)との距離を返す関数として実際し直すことで

現実装では距離の二乗が求まってるんだから、その平方根を返せばいい。

2つ目がclass twoDの宣言内にpublicなメンバ関数 double radius()を原点(0.0,0.0)とメンバー(x.y)との距離を返す関数として実装すること

1つ目のdistance()で二点間の距離が求まるんだから、radius() は distance(twoD()) を返せばいい。

3つ目が(p.x,p.y)=(2.0,3.0)とするtwoDクラスのオブジェクトpと(q.x,q.y)=(0.0,5.0)とするtwoDクラスのオブジェクトqをmain()関数中で宣言し、各オブジェクトの原点との距離、オブジェクト間の距離を標準出力に表示する。

上記ふたつができたんなら、どってことないでしょ?

投稿2021/04/28 08:34

編集2021/04/28 08:35
episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問