Вопрос задан 11.07.2023 в 06:47. Предмет Информатика. Спрашивает Журавский Даниил.

Задание по С++ Даны координаты трех точек на плоскости. Если они могут быть вершинами

тупоугольного треугольника, вычислите его площадь, выведите длины сторон в порядке убывания значений.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Вишневская Анастасия.

Ответ:

#include <iostream>

#define min(a,b) ((a)<(b)?(a):(b))

#define max(a,b) ((a)>(b)?(a):(b))

using namespace std;

double distance(double x1, double y1, double x2, double y2)

{

return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));

}

int main() {

double ax, ay, bx, by, cx, cy;

double ab, ac, bc;

cout << "A: ";

cin >> ax >> ay;

cout << "B: ";

cin >> bx >> by;

cout << "C: ";

cin >> cx >> cy;

ab = distance(ax, ay, bx, by);

bc = distance(bx, by, cx, cy);

ac = distance(ax, ay, cx, cy);

// Используем свойство тупоугольности треугольника: a^2+b^2<c^2

if ((ab * ab + bc * bc < ac * ac) || (ab * ab + ac * ac < bc * bc) || (bc * bc + ac * ac < ab * ab))

{

 // Площадь по формуле Герона

 double hp = (ab + ac + bc) / 2; // Полупериметр

 cout << "Square: " << sqrt(hp * (hp - ab) * (hp - ac) * (hp - bc)) << endl;

 cout << max(max(ab, ac), bc) << ", "

  << (ab + ac + bc - min(min(ab, ac), bc) - max(max(ab, ac), bc)) << ", "

  << min(min(ab, ac), bc);

}

else cout << "Entered points cannot be vertices of an obtuse triangle";

return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам понадобится вычислить длины всех сторон треугольника, проверить, является ли он тупоугольным, и если да, то вычислить его площадь и вывести длины сторон в порядке убывания.

Вот пример кода на C++, который выполняет это задание:

cpp
#include <iostream> #include <cmath> #include <algorithm> using namespace std; // Функция для вычисления расстояния между двумя точками double distance(double x1, double y1, double x2, double y2) { return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); } int main() { double x1, y1, x2, y2, x3, y3; cout << "Введите координаты первой точки (x1 y1): "; cin >> x1 >> y1; cout << "Введите координаты второй точки (x2 y2): "; cin >> x2 >> y2; cout << "Введите координаты третьей точки (x3 y3): "; cin >> x3 >> y3; double side1 = distance(x1, y1, x2, y2); double side2 = distance(x2, y2, x3, y3); double side3 = distance(x3, y3, x1, y1); // Сортировка сторон в порядке убывания double sides[3] = {side1, side2, side3}; sort(sides, sides + 3, greater<double>()); if (sides[0] * sides[0] > sides[1] * sides[1] + sides[2] * sides[2]) { // Треугольник тупоугольный double area = 0.5 * side2 * side3; cout << "Площадь треугольника: " << area << endl; cout << "Длины сторон в порядке убывания: " << sides[0] << " " << sides[1] << " " << sides[2] << endl; } else { cout << "Треугольник не является тупоугольным." << endl; } return 0; }

Вы можете вставить этот код в среду разработки C++ (например, Code::Blocks, Visual Studio, или онлайн компилятор) и запустить для выполнения задания.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос