Нужна помощь! C++ Разработать структуры, реализовать необходимый набор операций с объектами структурного типа. Обеспечить чтение данных из файла. Написать тестирующую функцию main Само задание: Определить структуру для представления треугольника координатами вершин на плоскости. Обеспечить выполнение операций вычисления площади, периметра треугольника, вычисления высот, а также определения вида треугольника
double calculateArea(Triangle t) { double a = distance(t.A, t.B); double b = distance(t.B, t.C); double c = distance(t.C, t.A); double s = (a + b + c) / 2; return sqrt(s (s - a) (s - b) * (s - c)); }
using namespace std;
struct Point {
int x;
int y;
};
struct Triangle {
Point A;
Point B;
Point C;
};
double distance(Point p1, Point p2) {
return sqrt(pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2));
}
double calculateArea(Triangle t) {
double a = distance(t.A, t.B);
double b = distance(t.B, t.C);
double c = distance(t.C, t.A);
double s = (a + b + c) / 2;
return sqrt(s (s - a) (s - b) * (s - c));
}
double calculatePerimeter(Triangle t) {
return distance(t.A, t.B) + distance(t.B, t.C) + distance(t.C, t.A);
}
void determineType(Triangle t) {
if (a == b && b == c) {double a = distance(t.A, t.B);
double b = distance(t.B, t.C);
double c = distance(t.C, t.A);
cout << "Equilateral triangle" << endl;
} else if (a == b || b == c || c == a) {
cout << "Isosceles triangle" << endl;
} else {
cout << "Scalene triangle" << endl;
}
}
int main() {
Triangle t;ifstream file("input.txt");
if (!file.is_open()) {
cout << "File cannot be opened." << endl;
return 1;
}
file >> t.A.x >> t.A.y >> t.B.x >> t.B.y >> t.C.x >> t.C.y;
cout << "Area: " << calculateArea(t) << endl;
cout << "Perimeter: " << calculatePerimeter(t) << endl;
determineType(t);
file.close();
return 0;
}