На плоскости заданы своими
координатами n точек. Составить функцию, определяющую
между какими из пар точек самое большое расстояние. Указание: координатны точек
занести в массив.
Данную программу нужно
написать на С++. Помогите пожалуйста.
Другие языки программирования и технологии
С++ программирование функций. а плоскости заданы своими координатами n точек...
#include <iostream>
using namespace std;
struct coord {
double x, y;
friend double operator-(const coord&, const coord&);
friend ostream& operator<<(ostream&, const coord&);
};
void input(coord*, const size_t);
void output(coord*, const size_t);
double max_distance(coord*, const size_t);
int main() {
system("chcp 1251 > nul");
const size_t q = 5;
coord v[q];
input(v, q);
output(v, q);
max_distance(v, q);
cin.sync();
cin.get();
}
double max_distance(coord* _p, const size_t _sz) {
double max = 0, distance = 0;
size_t first = 0, second = 0;
for (size_t i = 0; i < _sz - 1; ++i) {
for (size_t j = i + 1; j < _sz; ++j) {
distance = fabs(_p[i] - _p[j]);
if (distance > max) {
max = distance;
first = i;
second = j;
}
}
}
cout << "\n Максимальное расстояние: " << max << ", между точками: " << _p[first] << " и " << _p[second] << endl;
return distance;
}
double operator-(const coord& _a, const coord& _b) {
return sqrt(pow(_a.x - _b.x, 2) + pow(_a.y - _b.y, 2));
}
ostream& operator<<(ostream& _cout, const coord& _coord) {
_cout << '[' << _coord.x << "; " << _coord.y << ']';
return _cout;
}
void input(coord* _p, const size_t _sz) {
cout << " Введите координаты точек плоскости: \n\n";
for (size_t i = 0; i < _sz; ++i) {
cout << " x" << i + 1 << " = ";
cin >> _p[i].x;
cout << " y" << i + 1 << " = ";
cin >> _p[i].y;
cout << '\n';
}
system("cls");
}
void output(coord* _p, const size_t _sz) {
cout << " Массив точек плоскости, заданных координатами: \n\n";
for (size_t i = 0; i < _sz; ++i) cout << ' ' << _p[i];
cout << endl;
}
using namespace std;
struct coord {
double x, y;
friend double operator-(const coord&, const coord&);
friend ostream& operator<<(ostream&, const coord&);
};
void input(coord*, const size_t);
void output(coord*, const size_t);
double max_distance(coord*, const size_t);
int main() {
system("chcp 1251 > nul");
const size_t q = 5;
coord v[q];
input(v, q);
output(v, q);
max_distance(v, q);
cin.sync();
cin.get();
}
double max_distance(coord* _p, const size_t _sz) {
double max = 0, distance = 0;
size_t first = 0, second = 0;
for (size_t i = 0; i < _sz - 1; ++i) {
for (size_t j = i + 1; j < _sz; ++j) {
distance = fabs(_p[i] - _p[j]);
if (distance > max) {
max = distance;
first = i;
second = j;
}
}
}
cout << "\n Максимальное расстояние: " << max << ", между точками: " << _p[first] << " и " << _p[second] << endl;
return distance;
}
double operator-(const coord& _a, const coord& _b) {
return sqrt(pow(_a.x - _b.x, 2) + pow(_a.y - _b.y, 2));
}
ostream& operator<<(ostream& _cout, const coord& _coord) {
_cout << '[' << _coord.x << "; " << _coord.y << ']';
return _cout;
}
void input(coord* _p, const size_t _sz) {
cout << " Введите координаты точек плоскости: \n\n";
for (size_t i = 0; i < _sz; ++i) {
cout << " x" << i + 1 << " = ";
cin >> _p[i].x;
cout << " y" << i + 1 << " = ";
cin >> _p[i].y;
cout << '\n';
}
system("cls");
}
void output(coord* _p, const size_t _sz) {
cout << " Массив точек плоскости, заданных координатами: \n\n";
for (size_t i = 0; i < _sz; ++i) cout << ' ' << _p[i];
cout << endl;
}
Похожие вопросы
- Как по координатам трех точек треугольника определить - начало координат находится внутри него или за его пределами?
- Pascal. Даны координаты начала и конца отрезка. Определить координаты всех точек этого отрезка.
- что значит в программировании функция, которая возвращает значение.
- Задана последовательность, содержащая n целых чисел. Необходимо найти число паскаль
- вопрос web спецам с чего лучше начать создание сайта с дизайна или с функций? школоту прошу оставить свои умности себе
- Знатокам AutoCAD!!! Не могу ввести вторую координату точки отрезка.
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!
- Программирование на языке СИ с использованием подпрограммы-функции
- C++ Вывести сообщение о том, какая из точек ближе к началу координат, и все соответствующие расстояния.
- Разработать класс описывающий множество точек на плоскости, реализовать метод который возвращает наименьшее расстояние