В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Tandy
Tandy
04.12.2020 05:58 •  Информатика

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

Показать ответ
Ответ:
софилка
софилка
03.10.2020 16:12
#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(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота