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

0 голосов
337 просмотров

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


Информатика (56 баллов) | 337 просмотров
Дан 1 ответ
0 голосов

Ответ:

#include

#define min(a,b) ((a)

#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

cin >> ax >> ay;

cout

cin >> bx >> by;

cout

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

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

 cout

 

 

}

else cout

return 0;

}

(2.5k баллов)