Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Описать тип Point - с полями вещественного типа x и y (координаты точки на
- плоскости) - и функцию leng(a, b) вещественного типа, находящую длину отрезка
- AB на плоскости по координатам его концов (a и b - параметры типа Point). Описать
- тип Triangle - с полями a, b, c типа Point (вершины треугольника) - и функцию
- perim(t) вещественного типа, находящую периметр треугольника t (t - параметр типа
- Triangle). Описать функцию area(t) вещественного типа, находящую площадь
- треугольника t (t - параметр типа Triangle) по формуле Герона. Описать функцию
- dist(p, a, b) вещественного типа (p, a, b - параметры типа Point), находящую
- расстояние d(p, ab) от точки P до прямой AB. Описать функцию altitudes(t, h1, h2,
- h3), находящую высоты h1, h2, h3 треугольника t (t - входной параметр типа Triangle,
- h1, h2, h3 - выходные вещественные параметры), проведенные соответственно из
- вершин t.a, t.b, t.c. С помощью этой функции найти высоты треугольников ABC,
- ABD, ACD, если даны координаты точек A, B, C, D.*/
- #include <iostream>
- #include <cmath>
- using namespace std;
- struct Point
- {
- double x;
- double y;
- };
- double leng(Point a, Point b);
- struct Triangle
- {
- Point a;
- Point b;
- Point c;
- };
- double perim(Triangle t);
- double area(Triangle t);
- double dist(Point p, Point a, Point b);
- void altitudes(Triangle t);
- int main()
- {
- Point A, B, C, D;
- cout << "Enter Ax, Ay, Bx, By, Cx, Cy, Dx, Dy: " << endl;
- cin >> A.x >> A.y >> B.x >> B.y >> C.x >> C.y >> D.x >> D.y;
- Triangle ABC = { A, B, C };
- Triangle ABD = { A, B, D };
- Triangle ACD = { A, C, D };
- altitudes(ABC);
- altitudes(ABD);
- altitudes(ACD);
- return 0;
- }
- double leng(Point a, Point b)
- {
- double len = sqrt(pow((b.x - a.x), 2) + pow((b.y - a.y), 2));//
- return len;
- }
- double perim(Triangle t)
- {
- double p = leng(t.a, t.b) + leng(t.b, t.c) + leng(t.c, t.a);
- return p;
- }
- double area(Triangle t)
- {
- double p2 = perim(t) / 2;
- double s = sqrt((p2) * (p2 - leng(t.a, t.b)) * (p2 - leng(t.b, t.c)) * (p2 - leng(t.c, t.a)));
- return s;
- }
- double dist(Point p, Point a, Point b)
- {
- Triangle tt = { p, a, b };
- double dst = 2 * (area(tt) / leng(a, b));///////////////
- return dst;
- }
- void altitudes(Triangle t)
- {
- double ha, hb, hc;
- ha = dist(t.a, t.b, t.c);
- hb = dist(t.b, t.a, t.c);
- hc = dist(t.c, t.a, t.b);
- cout << "Your result: " << endl << "h1 = " << ha << endl << "h2 = " << hb << endl << "h3 = " << hc << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement