Advertisement
VictoriaLodochkina

lab 5.2 z1 HZ-HZ-HZ

Mar 21st, 2020
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.89 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. double 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.     //leng(A, B);
  39.  
  40.     return 0;
  41. }
  42.  
  43. double leng(Point a, Point b)
  44. {
  45.     double len = sqrt(pow((b.x - a.x), 2) + pow((b.y - b.x), 2));
  46.     return len;
  47. }
  48.  
  49. double perim(Triangle t)
  50. {
  51.     double p = leng(t.a, t.b) + leng(t.b, t.c) + leng(t.c, t.a);
  52.     return p;
  53. }
  54.  
  55. double area(Triangle t)
  56. {
  57.     double p2 = perim(t) / 2;
  58.     double s = sqrt((p2) * (p2 - leng(t.a, t.b)) * (p2 - leng(t.b, t.c)) * (p2 - leng(t.c, t.a)));
  59.     return s;
  60. }
  61.  
  62. double dist(Point p, Point a, Point b)
  63. {
  64.     Triangle tt = { p, a, b };
  65.     double dst = 2 * (area(tt) / leng(a, b));///////////////
  66.     return dst;
  67. }
  68.  
  69. double altitudes(Triangle t)
  70. {
  71.     double ha, hb, hc;
  72.     double ha = dist(t.a, t.b, t.c);
  73.     double hb = dist(t.b, t.a, t.c);
  74.     double hc = dist(t.c, t.a, t.b);
  75.     cout << "Your result: " << endl << "h1 = " << ha << endl << "h2 = " << hb << endl << "h3 = " << hc << endl;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement