Вопрос задан 18.02.2019 в 00:08. Предмет Информатика. Спрашивает Никулин Даня.

Создать класс окружностей на плоскости, описав в нём все необходимые свойства, подобрав им понятные

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Рей Влад.
#include <iostream>
#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;
}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Описание класса "Окружность"

Для создания класса "Окружность" на плоскости, в котором будут описаны все необходимые свойства, мы можем использовать следующую структуру:

```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 для упрощения. В реальных приложениях можно использовать более точное значение π или импортировать его из математической библиотеки.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос