Задание 4. Классы.

Часть 1 - 30 баллов. Реализовать класс точки на плоскости, с закрытыми полями x,y. Класс должен содержать:

  • конструктор с параметрами (x,y)

  • конструктор по умолчанию

  • методы доступа к полям

  • метод вычисления расстояния до другой точки

  • Добавить деструктор точки, вывести сообщение вида: "Уничтожена точка (x,y)".

  • Описать конструктор копии. Добавить в него вывод: “Создана копия (x,y)”.

  • можно воспользоваться заготовкой.

Часть 2 - 30 баллов. Используя объекты этого класса описать класс треугольник. Класс должен содержать:

  • закрытые поля для вершин;

  • конструктор с параметрами (p1, p2, p3);

  • методы доступа к полям;

  • методы вычисления:

    • тип треугольника;

    • периметр;

    • площадь;

    • радиус вписанной окружности;

    • радиус описанной окружности;

Описать функции ввода и вывода треугольника. Операторы >>,  <<  можно переопределить. Их сигнатура будет иметь вид:

std::ostream &operator<<(std::ostream &os, const КЛАСС &p);

std::istream &operator>>(std::istream &is, КЛАСС &p);

 При описании конструктора необходимо проверять, что треугольник не вырожденный.

Часть 3 - 30 баллов. Описать класс круг. Класс должен содержать:

  • закрытые поля центр и радиус;
  • конструктор с параметрами;
  • методы доступа к полям;
  • методы вычисления площади и периметра;
  • метод определения принадлежности точки кругу.

Считать массив точек из файла и вычислить радиус круга с центром в одной из точек массива, имеющего минимальную площадь и содержащего все точки массива.

Тесты к заданию - 10 баллов.