Advertisement
Ifrail

Less6 Task2

Dec 4th, 2019
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1. /*Линейный рост*/
  2. #include <iostream>
  3. #include <cmath>
  4.  
  5. /*Цель: написать несколько конструкторов с параметрами*/
  6. /*
  7. В этой задаче мы будем считать длину ломаной, состоящей из двух отрезков (конец одного отрезка, совпадает с началом другого), для этого:
  8. - создайте класс отрезка Line,
  9. - напишите два конструктора с параметрами, один принимает конечную точку (начальная точка, в этом случае считается с координатами (0;0)), второй - две точки, начальную и конечную соответственно
  10. - напишите методы возвращающие начальную и конечную точки отрезка (геттеры)
  11. - напишите метод рассчитывающий длину отрезка по двум точкам
  12. - дополните класс Point из прошлой задачи конструктором, принимающий координаты точки - x и y.
  13.  
  14. Внимание, отправлять нужно только классы!
  15. */
  16.  
  17. using namespace std;
  18.  
  19. class Point {
  20.     int _x, _y;
  21.  
  22. public:
  23.     Point () {
  24.         _x = 0;
  25.         _y = 0;
  26.     }
  27.  
  28.     Point(int x, int y) {
  29.         _x = x;
  30.         _y = y;
  31.     }
  32.  
  33.     int getX() { return _x; }
  34.     int getY() { return _y; }
  35.    
  36. };
  37.  
  38. class Line {
  39.     Point _p1;
  40.     Point _p2;
  41. public:
  42.     Line(Point endPoint) {
  43.         _p2 = endPoint;
  44.     }
  45.     Line(Point startPoint, Point endPoint) {
  46.         _p1 = startPoint;
  47.         _p2 = endPoint;
  48.     }
  49.  
  50.     Point getStart() { return _p1; }
  51.     Point getEnd() { return _p2; }
  52.  
  53.     double length() {
  54.         return sqrt(pow(_p1.getX() - _p2.getX(), 2) + pow(_p1.getY() - _p2.getY(), 2));
  55.     }
  56. };
  57.  
  58. /*В преамбулу*/
  59. int main() {
  60.     int x, y;
  61.     cin >> x >> y;
  62.     Point p1(x, y);
  63.     cin >> x >> y;
  64.     Point p2(x, y);
  65.    
  66.     Line l1(p1);
  67.     Line l2(p1, p2);
  68.  
  69.     cout << "P1: " << l1.getStart().getX() << " " << l1.getStart().getY() << endl;
  70.     cout << "P2: " << l1.getEnd().getX() << " " << l1.getEnd().getY() << endl;
  71.     cout << "P3: " << l2.getEnd().getX() << " " << l2.getEnd().getY() << endl;
  72.     cout << l1.length() + l2.length() << endl;
  73.     return 0;
  74. }
  75.  
  76. /*
  77. Тест 1
  78. Ввод:
  79. 3 5
  80. 9 16
  81. Вывод:
  82. P1: 0 0
  83. P2: 3 5
  84. P3: 9 16
  85. 18.3609
  86.  
  87. Тест 2
  88. Ввод:
  89. -4 -8
  90. 25 6
  91. Вывод:
  92. P1: 0 0
  93. P2: -4 -8
  94. P3: 25 6
  95. 41.1468
  96.  
  97. Тест 3
  98. Ввод:
  99. -4 -8
  100. 25 6
  101. Вывод:
  102. P1: 0 0
  103. P2: 1 1
  104. P3: 4 4
  105. 5.65685
  106. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement