Advertisement
VictoriaLodochkina

lab 5.2 Z1 only better

Mar 23rd, 2020
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.99 KB | None | 0 0
  1. /*Описать тип Point - с полями вещественного типа x и y (координаты точки на
  2. плоскости) - и функцию leng(a, b) вещественного типа, находящую длину отрезка
  3. AB на плоскости по координатам его концов (a и b - параметры типа Point). Описать
  4. тип Triangle - с полями a, b, c типа Point (вершины треугольника) - и функцию
  5. perim(t) вещественного типа, находящую периметр треугольника t (t - параметр типа
  6. Triangle). Описать функцию area(t) вещественного типа, находящую площадь
  7. треугольника t (t - параметр типа Triangle) по формуле Герона. Описать функцию
  8. dist(p, a, b) вещественного типа (p, a, b - параметры типа Point), находящую
  9. расстояние d(p, ab) от точки P до прямой AB. Описать функцию altitudes(t, h1, h2,
  10. h3), находящую высоты h1, h2, h3 треугольника t (t - входной параметр типа Triangle,
  11. h1, h2, h3 - выходные вещественные параметры), проведенные соответственно из
  12. вершин t.a, t.b, t.c. С помощью этой функции найти высоты треугольников ABC,
  13. ABD, ACD, если даны координаты точек A, B, C, D.*/
  14. #include <iostream>
  15. #include <cmath>
  16. using namespace std;
  17. struct Point
  18. {
  19.     double x;
  20.     double y;
  21. };
  22. double leng(Point a, Point b);
  23. struct Triangle
  24. {
  25.     Point a;
  26.     Point b;
  27.     Point c;
  28. };
  29. double perim(Triangle t);
  30. double area(Triangle t);
  31. double dist(Point p, Point a, Point b);
  32. void altitudes(Triangle t);
  33. int main()
  34. {
  35.     Point A, B, C, D;
  36.     cout << "Enter Ax, Ay, Bx, By, Cx, Cy, Dx, Dy: " << endl;
  37.     cin >> A.x >> A.y >> B.x >> B.y >> C.x >> C.y >> D.x >> D.y;
  38.     Triangle ABC = { A, B, C };
  39.     Triangle ABD = { A, B, D };
  40.     Triangle ACD = { A, C, D };
  41.     altitudes(ABC);
  42.     altitudes(ABD);
  43.     altitudes(ACD);
  44.     return 0;
  45. }
  46.  
  47. double leng(Point a, Point b)
  48. {
  49.     double len = sqrt(pow((b.x - a.x), 2) + pow((b.y - a.y), 2));//
  50.     return len;
  51. }
  52.  
  53. double perim(Triangle t)
  54. {
  55.     double p = leng(t.a, t.b) + leng(t.b, t.c) + leng(t.c, t.a);
  56.     return p;
  57. }
  58.  
  59. double area(Triangle t)
  60. {
  61.     double p2 = perim(t) / 2;
  62.     double s = sqrt((p2) * (p2 - leng(t.a, t.b)) * (p2 - leng(t.b, t.c)) * (p2 - leng(t.c, t.a)));
  63.     return s;
  64. }
  65.  
  66. double dist(Point p, Point a, Point b)
  67. {
  68.     Triangle tt = { p, a, b };
  69.     double dst = 2 * (area(tt) / leng(a, b));///////////////
  70.     return dst;
  71. }
  72.  
  73. void altitudes(Triangle t)
  74. {
  75.     double ha, hb, hc;
  76.     ha = dist(t.a, t.b, t.c);
  77.     hb = dist(t.b, t.a, t.c);
  78.     hc = dist(t.c, t.a, t.b);
  79.     cout << "Your result: " << endl << "h1 = " << ha << endl << "h2 = " << hb << endl << "h3 = " << hc << endl;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement