9th.inの内容を取得し,はじめの点(二次元)とデータ点との距離が r 未満である場合は true, それ以外の場合は false を一行ごとに出力するプログラムをかきたいのですが,ほとんど何も分かっていません...。
9th.inの中には
1行目: x 座標, y 座標, 半径 r
2行目: データ数 n
3行目から 3 + n 行目: データ点の x 座標, y 座標
が含まれています。
加算,減算を行う二次元ベクトルクラスを作成.以下の4つの機能も実装しなければなりません。
長さを計算する関数 len
加算演算子
減算演算子
コンストラクタ
4つの機能の実装のコードは(全然未完成かもしれませんが)下記のような感じです。
長さを計算する関数len
c++
1 class A{ 2 double z; 3 public: 4 double x; 5 double y; 6 double len(){ 7 return sqrt(x*x + y*y); 8 } 9 };
加算演算子と減算演算子
c++
1 class R1{ 2 public: 3 double x; 4 R1(double x){ 5 (*this).x = x; 6 } 7 R1 operator+(R1 r1){ 8 return R1((*this).x + r1.x); 9 } 10 R1 operator-(R1 r1){ 11 return R1((*this).x - r1.x); 12 } 13 }; 14 15 16 class R2{ 17 public: 18 double y; 19 R2(double y){ 20 (*this).y = y; 21 } 22 R2 operator+(R2 r2){ 23 return R2((*this).y - r2.y); 24 } 25 R2 operator-(R2 r2){ 26 return R2((*this).y + r2.y); 27 } 28 };
コンストラクタ
c++
1class A2{ 2public: 3 double x; 4 A2(double x){ 5 (*this).x = x; 6 } 7};
9th.inの内容の取得については全くわかりません。
この4つをまとめて一枚に書けばいい感じですか?
皆さんの回答を参考に書き直したコードです
c++
1#include<iostream> 2#include<fstream> 3#include<cmath> 4using namespace std; 5 6class A{ 7 8public: 9 double x; 10 double y; 11 12 A() = default; 13 14 //コンストラクタ 15 A(double x,double y){ 16 (*this).x = x; 17 (*this).y = y; 18 } 19 20 //長さを計算する関数len 21 double len(){ 22 return sqrt((-1.14453-x)*(-1.14453-x) + (0.560077-y)*(0.560077-y)); 23 } 24 25 //加算演算子と減算演算子 26 A operator+(A a1){ 27 return A((*this).x + a1.x); 28 } 29 A operator-(A a1){ 30 return A((*this).x - a1.x) 31 } 32 33}; 34 35int main(){ 36 ifstream ifs("9th.in"); 37 if(!ifs) return 1; 38 39 double x,y,x0,y0,r; 40 int n; 41 ifs >> x0 >> y0 >> r >> n; 42 43 cout << boolalpha; 44 for(int i=o;i<n;i++){ 45 ifs >> x >> y; 46 cout << (hypot(x - x0,y - y0) < r) << endl; 47 } 48}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 23:59