
Создать класс окружностей на плоскости, описав в нём все необходимые свойства, подобрав им понятные
имена и правильные типы данных. Описать в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства, а также конструктор, позволяющий задать свойства с клавиатуры. Если это необходимо, то проверить допустимость значений свойств. Создать в классе метод, вычисляющий площадь круга. Создать в классе метод, вычисляющий расстояние между центрами окружностей. Создать в классе метод, проверяющий, касаются ли окружности.

Ответы на вопрос

#include <cmath>
using namespace std;
class Circle
{
private:
double x;
double y;
double r;
public:
Circle();
Circle(double xCo, double yCo, double rad);
double area();
double centre_dist(Circle & c);
bool istouch(Circle & c);
};
Circle::Circle()
{
cout << "Enter x coord: ";
cin >> x;
cout << "Enter y coord: ";
cin >> y;
cout << "Enter radius: ";
while (cin >> r && r < 0)
{
cout << "Radius can't be negative\n";
cout << "Enter radius: ";
}
}
Circle::Circle(double xCo, double yCo, double rad) : x(xCo), y(yCo), r(rad)
{
if (r < 0)
{
cout << "Radius can't be negative\n";
cout << "Radius set to 0\n";
r = 0;
}
}
double Circle::area()
{
return 3.1415926 * r * r;
}
double Circle::centre_dist(Circle & c)
{
return sqrt((x - c.x) * (x - c.x) + (y - c.y) * (y - c.y));
}
bool Circle::istouch(Circle & c)
{
return (this->centre_dist(c) <= r + c.r) ? true : false;
}
int main()
{
Circle c1;
Circle c2(0, 0, 5);
cout << "area of c2: " << c2.area() << endl;
cout << "centre distance: " << c2.centre_dist(c1) << endl;
cout << "is touch: ";
c2.istouch(c1) ? cout << "yes" : cout << "no";
cout << endl;
return 0;
}



Описание класса "Окружность"
Для создания класса "Окружность" на плоскости, в котором будут описаны все необходимые свойства, мы можем использовать следующую структуру:
```python class Circle: def __init__(self, x, y, radius): self.x = x self.y = y self.radius = radius
def calculate_area(self): area = 3.14159 * self.radius ** 2 return area
def calculate_distance(self, other_circle): distance = ((self.x - other_circle.x) 2 + (self.y - other_circle.y) 2) ** 0.5 return distance
def check_intersection(self, other_circle): distance = self.calculate_distance(other_circle) if distance <= self.radius + other_circle.radius: return True else: return False ```
В этом классе мы определили следующие свойства: - `x` и `y` - координаты центра окружности на плоскости. - `radius` - радиус окружности.
Конструктор класса
В классе определен конструктор `__init__`, который позволяет явно задать все свойства объекта при его создании. Конструктор принимает аргументы `x`, `y` и `radius` и инициализирует соответствующие свойства объекта.
Методы класса
1. `calculate_area(self)`: Этот метод вычисляет площадь окружности, используя формулу `площадь = π * радиус^2`. Метод возвращает вычисленную площадь.
2. `calculate_distance(self, other_circle)`: Этот метод вычисляет расстояние между центрами двух окружностей, используя формулу расстояния между двумя точками в пространстве. Метод принимает в качестве аргумента другой объект окружности `other_circle` и возвращает вычисленное расстояние.
3. `check_intersection(self, other_circle)`: Этот метод проверяет, касаются ли две окружности друг друга или пересекаются. Метод использует расстояние между центрами окружностей и сравнивает его с суммой радиусов. Если расстояние меньше или равно сумме радиусов, то окружности касаются или пересекаются. Метод возвращает `True`, если окружности касаются или пересекаются, и `False` в противном случае.
Пример использования класса
```python # Создание объекта окружности с заданными свойствами circle1 = Circle(0, 0, 5)
# Вычисление площади окружности area = circle1.calculate_area() print("Площадь окружности:", area)
# Создание второго объекта окружности с заданными свойствами circle2 = Circle(3, 4, 2)
# Вычисление расстояния между центрами окружностей distance = circle1.calculate_distance(circle2) print("Расстояние между центрами окружностей:", distance)
# Проверка, касаются ли окружности или пересекаются intersection = circle1.check_intersection(circle2) if intersection: print("Окружности касаются или пересекаются") else: print("Окружности не касаются и не пересекаются") ```
Примечание: В данном примере мы использовали значение π (пи) равное 3.14159 для упрощения. В реальных приложениях можно использовать более точное значение π или импортировать его из математической библиотеки.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili