Композиция классов и объектов


Тип данных должен быть
реализован в виде класса с указанными закрытыми полями, где операции
реализуются в виде открытых методов класса. Требуется реализовать тип данных с помощью
класса. Во всех заданиях обязательно должны присутствовать:
·
Метод
инициализации Init(); метод должен контролировать значения аргументов на
корректность, при некорректных значения выводить
сообщение No и заканчивать
работу с этим экземпляром;
·
Ввод с клавиатуры
Read();
·
Вывод на экран Display(), в
котором выводятся поля экземпляра и результат вычислений специфического метода;
В головной функции требуется
создать один статический экземпляр описанного типа и массив из n динамических
экземпляров этого типа и вызвать для каждого из этих экземпляров все
перечисленные методы в указанном порядке.


Формат входных данных.
Ввод: три
пары координат вершин статического объекта, затем число экземпляров в
динамическом объекте и данные параметров динамических объектов.
Вывод: поля
экземпляра и результаты специфических методов статического объекта (углы
измерять в градусах), затем данные экземпляров и результаты специфических
методов динамического объекта.
Пример входных данных:
0 0
3 0 0 4
3
0 5 5 0 0 2
1 1 3 3 3 0
2 0 0
2 0 0
Пример выходных данных:
sides 3.000
4.000 5.000
angles
36.870 53.130 90.000
heights
4.000 3.000 2.400
perimeter=
12.000 square= 6.000
right -
angled
sides
7.071 3.000 5.385
angles
111.801 23.199 45.000
heights
2.121 5.000 2.785
perimeter=
15.456 square= 7.500
sides
2.828 2.236 3.000
angles
63.435 45.000 71.565
heights
2.121 2.683 2.000
perimeter=
8.064 square= 3.000
sides
2.828 2.000 2.000
angles
90.000 45.000 45.000
heights
1.414 2.000 2.000
perimeter=
6.828 square= 2.000
right -
angled