
Вопрос задан 08.10.2023 в 23:07.
Предмет Информатика.
Спрашивает Милеева Анастасия.
Четыре точки заданы своими координатами X(x1, x2), Y(y1, y2), Z(z1, z2), P(p1, p2). Выяснить, какие
из них находятся на минимальном расстоянии друг от друга и вывести на печать значение этого расстояния. Вычисление расстояния между двумя точками оформить в виде процедуры. C++

Ответы на вопрос

Отвечает Жилина Кристина.
#include <iostream>
#include <cmath>
using namespace std;
double dist(double x[2], double y[2]) {
return sqrt((x[0] - y[0]) * (x[0] - y[0]) + (x[1] - y[1]) * (x[1] - y[1]));
}
int main() {
double points[4][2];
for (int i = 0; i != 4; ++i) {
cin >> points[i][0] >> points[i][1];
}
double min = dist(points[0], points[1]);
for (int i = 0; i != 4; ++i) {
for (int j = i + 1; j != 4; ++j) {
double new_min = dist(points[i], points[j]);
if (new_min < min) {
min = new_min;
}
}
}
cout << min;
}
#include <cmath>
using namespace std;
double dist(double x[2], double y[2]) {
return sqrt((x[0] - y[0]) * (x[0] - y[0]) + (x[1] - y[1]) * (x[1] - y[1]));
}
int main() {
double points[4][2];
for (int i = 0; i != 4; ++i) {
cin >> points[i][0] >> points[i][1];
}
double min = dist(points[0], points[1]);
for (int i = 0; i != 4; ++i) {
for (int j = i + 1; j != 4; ++j) {
double new_min = dist(points[i], points[j]);
if (new_min < min) {
min = new_min;
}
}
}
cout << min;
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи вам потребуется создать процедуру для вычисления расстояния между двумя точками и затем сравнить все возможные комбинации точек, чтобы найти минимальное расстояние. Вот пример реализации на C++:
cpp#include <iostream>
#include <cmath>
#include <limits>
struct Point {
int x, y;
};
double calculateDistance(Point A, Point B) {
return sqrt(pow(B.x - A.x, 2) + pow(B.y - A.y, 2));
}
int main() {
Point points[] = {{x1, x2}, {y1, y2}, {z1, z2}, {p1, p2}};
double minDistance = std::numeric_limits<double>::max();
Point closestPoints[2];
for (int i = 0; i < 4; ++i) {
for (int j = i + 1; j < 4; ++j) {
double distance = calculateDistance(points[i], points[j]);
if (distance < minDistance) {
minDistance = distance;
closestPoints[0] = points[i];
closestPoints[1] = points[j];
}
}
}
std::cout << "Минимальное расстояние: " << minDistance << std::endl;
std::cout << "Ближайшие точки: (" << closestPoints[0].x << ", " << closestPoints[0].y << ") и ("
<< closestPoints[1].x << ", " << closestPoints[1].y << ")" << std::endl;
return 0;
}
Замените x1, x2, y1, y2, z1, z2, p1, p2
на конкретные значения координат ваших точек. Этот код вычислит минимальное расстояние между всеми парами точек и выведет ближайшие точки и значение минимального расстояния.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 575

Информатика 33

Информатика 39

Информатика 24

Информатика 34

Информатика 136

Информатика 18
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili