Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <random>
  3. #include <chrono>
  4.  
  5. using namespace std;
  6.  
  7. struct point
  8. {
  9. double x,y;
  10. };
  11.  
  12. struct triangle
  13. {
  14. point a,b,c;
  15. };
  16.  
  17. point get_point(std::default_random_engine &engine)
  18. {
  19.  
  20. std::uniform_real_distribution<double> distro (0,10);
  21. point p;
  22. p.x = distro(engine);
  23. p.y = distro(engine);
  24. return p;
  25. }
  26.  
  27. void print(const point &p)
  28. {
  29. cout << p.x <<" "<< p.y;
  30. }
  31.  
  32. void fill(point arr[],const int SIZE,std::default_random_engine &engine)
  33. {
  34. for (int i = 0 ; i < SIZE;i++)
  35. {
  36. arr[i] = get_point(engine);
  37. }
  38.  
  39. for (int i = 0 ; i < SIZE;i++)
  40. {
  41. cout << arr[i].x <<" "<< arr[i].y << endl;
  42.  
  43. }
  44. }
  45.  
  46. double side(const point &c,const point &d)
  47. {
  48. return sqrt( (c.x - d.x)*(c.x - d.x) + (c.y - d.y)*(c.y - d.y) );
  49. }
  50.  
  51. triangle find_the_largest(point arr[],const int SIZE)
  52. {
  53. triangle t;
  54. double p_, pole;
  55. double ab, bc, ca;
  56. double pole_max = 0;
  57.  
  58. for (int i = 0; i<SIZE ;i++)
  59. {
  60. for (int j = 0; j<SIZE ;j++)
  61. {
  62. for (int k = 0; k<SIZE ;k++)
  63. {
  64.  
  65.  
  66.  
  67. t.a = arr[i];
  68. t.b = arr[j];
  69. t.c = arr[k];
  70.  
  71. ab = side(t.a,t.b);
  72. bc = side(t.b,t.c);
  73. ca = side(t.c,t.a);
  74.  
  75. p_ = (ab+bc+ca)/2;
  76. pole = sqrt(p_ *(p_-ab)*(p_-bc)*(p_-ca));
  77.  
  78. if ( pole > pole_max )
  79. {
  80. pole_max = pole;
  81. }
  82. }
  83. }
  84. }
  85. cout << pole_max;
  86. }
  87.  
  88.  
  89. int main()
  90. {
  91. const int SIZE = 3;
  92. point arr[SIZE];
  93.  
  94. std::default_random_engine engine;
  95. engine.seed(std::chrono::system_clock::now().time_since_epoch().count());
  96.  
  97. point p = get_point(engine);
  98. //1
  99.  
  100. fill(arr,SIZE,engine); //2
  101.  
  102. find_the_largest(arr,SIZE); //3
  103. return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement