Другие языки программирования и технологии
Помогите пожалуйста! нужно написать программу на C++
точки: A,B,C.Определить, какая из двух последних точек (B или C) расположена ближе к A, и вывести эту точку и ее расстояние от точки A. все ответы найденные в инете были с ошибками, от этой задачи зависит судьба моей аттестации =)
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
struct point_area {
double x;
double y;
};
typedef point_area AREA;
struct point_space {
double x;
double y;
double z;
};
typedef point_space SPACE;
double distance_between(const AREA, const AREA);
double distance_between(const SPACE, const SPACE);
int main() {
wcout.imbue(locale("rus_rus.866"));
wcout << L"\tТочки на плоскости: \n\n";
AREA a, b, c;
double eps = 1e-12;
streamsize signs = 12;
wstring inp(L"Введите координату ");
wcout << inp << L"X точки A: "; cin >> a.x;
wcout << inp << L"Y точки A: "; cin >> a.y;
wcout << inp << L"X точки B: "; cin >> b.x;
wcout << inp << L"Y точки B: "; cin >> b.y;
wcout << inp << L"X точки C: "; cin >> c.x;
wcout << inp << L"Y точки C: "; cin >> c.y;
cout << endl;
double ab = distance_between(a, b);
double ac = distance_between(a, c);
if (fabs(ab - ac) < eps) wcout << L"Точки B и C равноудалены от A";
else if (ab < ac) cout << "B(" << b.x << ", " << b.y << ")" << "; [AB] = " << fixed << setprecision(signs) << ab;
else cout << "C(" << c.x << ", " << c.y << ")" << "; [AC] = " << fixed << setprecision(signs) << ac;
cout << fixed << setprecision(0) << endl << endl;
wcout << L"\tТочки в пространстве: \n\n";
SPACE A, B, C;
wcout << inp << L"X точки A: "; cin >> A.x;
wcout << inp << L"Y точки A: "; cin >> A.y;
wcout << inp << L"Z точки A: "; cin >> A.z;
wcout << inp << L"X точки B: "; cin >> B.x;
wcout << inp << L"Y точки B: "; cin >> B.y;
wcout << inp << L"Z точки B: "; cin >> B.z;
wcout << inp << L"X точки C: "; cin >> C.x;
wcout << inp << L"Y точки C: "; cin >> C.y;
wcout << inp << L"Z точки C: "; cin >> C.z;
cout << endl;
double AB = distance_between(A, B);
double AC = distance_between(A, C);
if (fabs(AB - AC) < eps) wcout << L"Точки B и C равноудалены от A";
else if (AB < AC) cout << "B(" << B.x << ", " << B.y << ", " << B.z << ")" << "; [AB] = " << fixed << setprecision(signs) << ab;
else cout << "C(" << C.x << ", " << C.y << ", " << C.y << ")" << "; [AC] = " << fixed << setprecision(signs) << ac;
cout << endl;
cin.get(); cin.get();
}
double distance_between(const AREA _coord_1, const AREA _coord_2) {
return sqrt(pow(_coord_2.x - _coord_1.x, 2) + pow(_coord_2.y - _coord_1.y, 2));
}
double distance_between(const SPACE _coord_1, const SPACE _coord_2) {
return sqrt(pow(_coord_2.x - _coord_1.x, 2) + pow(_coord_2.y - _coord_1.y, 2) + pow(_coord_2.z - _coord_1.z, 2));
}
#include <iomanip>
#include <string>
using namespace std;
struct point_area {
double x;
double y;
};
typedef point_area AREA;
struct point_space {
double x;
double y;
double z;
};
typedef point_space SPACE;
double distance_between(const AREA, const AREA);
double distance_between(const SPACE, const SPACE);
int main() {
wcout.imbue(locale("rus_rus.866"));
wcout << L"\tТочки на плоскости: \n\n";
AREA a, b, c;
double eps = 1e-12;
streamsize signs = 12;
wstring inp(L"Введите координату ");
wcout << inp << L"X точки A: "; cin >> a.x;
wcout << inp << L"Y точки A: "; cin >> a.y;
wcout << inp << L"X точки B: "; cin >> b.x;
wcout << inp << L"Y точки B: "; cin >> b.y;
wcout << inp << L"X точки C: "; cin >> c.x;
wcout << inp << L"Y точки C: "; cin >> c.y;
cout << endl;
double ab = distance_between(a, b);
double ac = distance_between(a, c);
if (fabs(ab - ac) < eps) wcout << L"Точки B и C равноудалены от A";
else if (ab < ac) cout << "B(" << b.x << ", " << b.y << ")" << "; [AB] = " << fixed << setprecision(signs) << ab;
else cout << "C(" << c.x << ", " << c.y << ")" << "; [AC] = " << fixed << setprecision(signs) << ac;
cout << fixed << setprecision(0) << endl << endl;
wcout << L"\tТочки в пространстве: \n\n";
SPACE A, B, C;
wcout << inp << L"X точки A: "; cin >> A.x;
wcout << inp << L"Y точки A: "; cin >> A.y;
wcout << inp << L"Z точки A: "; cin >> A.z;
wcout << inp << L"X точки B: "; cin >> B.x;
wcout << inp << L"Y точки B: "; cin >> B.y;
wcout << inp << L"Z точки B: "; cin >> B.z;
wcout << inp << L"X точки C: "; cin >> C.x;
wcout << inp << L"Y точки C: "; cin >> C.y;
wcout << inp << L"Z точки C: "; cin >> C.z;
cout << endl;
double AB = distance_between(A, B);
double AC = distance_between(A, C);
if (fabs(AB - AC) < eps) wcout << L"Точки B и C равноудалены от A";
else if (AB < AC) cout << "B(" << B.x << ", " << B.y << ", " << B.z << ")" << "; [AB] = " << fixed << setprecision(signs) << ab;
else cout << "C(" << C.x << ", " << C.y << ", " << C.y << ")" << "; [AC] = " << fixed << setprecision(signs) << ac;
cout << endl;
cin.get(); cin.get();
}
double distance_between(const AREA _coord_1, const AREA _coord_2) {
return sqrt(pow(_coord_2.x - _coord_1.x, 2) + pow(_coord_2.y - _coord_1.y, 2));
}
double distance_between(const SPACE _coord_1, const SPACE _coord_2) {
return sqrt(pow(_coord_2.x - _coord_1.x, 2) + pow(_coord_2.y - _coord_1.y, 2) + pow(_coord_2.z - _coord_1.z, 2));
}
И в чём сложность, определить расстояние между двумя точками?
Похожие вопросы
- Помогите пожалуйста, нужно написать программу в С++ (Visual Studio). Как можно проще.
- помогите нужно написать программу в C++
- Нужно написать программу на c++
- Помогите пожалуйста перевести код программы с C++ на Си.
- Информатики, выручайте, любые 5 заданий, пожалуйста!!! Нужно написать программу на языке паскаль.
- Помогите пожалуйста, нужно создать программу используя списки
- помогите пожалуйста, нужно составить программу на языке Паскаль
- Помогите написать программу на C/C++
- Привет всем! Помогите, пожалуйста, написать программу в C++.
- Помогите написать программу по C++