
Вопрос задан 23.06.2023 в 01:50.
Предмет Информатика.
Спрашивает Груздева Саша.
Задание на С++. Тема: Фигура 1. Написать классы Эллипс, Окружность, наследуемые из класса
Figures2D. Класс окружность наследуется из класса Эллипс. В private полях классов прописываются длины сторон (для треугольника), полуоси (для эллипса), радиус (для окружности). В каждом классе необходимо прописать методы perimeter() и area() для вычисления периметра (для эллипс и окружности- длина дуги) и площади фигур, а также метод information(), выводящий на экран координаты центра фигуры и параметры фигуры (по аналогии с классами прямоугольник и квадрат). 2. Написать класс Сфера, наследуемый из класса Figures3D. В private полях указать радиус сферы. С помощью метода values рассчитать объем сферы. Переопределить метод information(), выводящий информацию о сфере. 3. Написать класс Цилиндр, наследуемый из класса Figures3D. В private полях указать высоту цилиндра и тип основания. С помощью метода values рассчитать объем цилиндра. Переопределить метод information(), выводящий информацию о сфере.

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

Отвечает Князева Кристина.
Шалашовшалльатальалаьдвдвщвдщалащьалаьала



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для выполнения задания на C++ с созданием классов для геометрических фигур, включая эллипс, окружность, сферу и цилиндр, вам понадобится следующий код:
cpp#include <iostream>
#include <cmath>
class Figures2D {
public:
virtual double area() = 0;
virtual double perimeter() = 0;
virtual void information() = 0;
};
class Ellipse : public Figures2D {
private:
double semi_major_axis;
double semi_minor_axis;
double center_x;
double center_y;
public:
Ellipse(double major, double minor, double x, double y) : semi_major_axis(major), semi_minor_axis(minor), center_x(x), center_y(y) {}
double area() override {
return M_PI * semi_major_axis * semi_minor_axis;
}
double perimeter() override {
return 2 * M_PI * sqrt((semi_major_axis * semi_major_axis + semi_minor_axis * semi_minor_axis) / 2);
}
void information() override {
std::cout << "Ellipse: Center(" << center_x << ", " << center_y << "), Major Axis: " << semi_major_axis << ", Minor Axis: " << semi_minor_axis << std::endl;
}
};
class Circle : public Ellipse {
public:
Circle(double radius, double x, double y) : Ellipse(radius, radius, x, y) {}
void information() override {
std::cout << "Circle: Center(" << center_x << ", " << center_y << "), Radius: " << semi_major_axis << std::endl;
}
};
class Figures3D {
public:
virtual double volume() = 0;
virtual void information() = 0;
};
class Sphere : public Figures3D {
private:
double radius;
public:
Sphere(double r) : radius(r) {}
double volume() override {
return (4.0 / 3.0) * M_PI * pow(radius, 3);
}
void information() override {
std::cout << "Sphere: Radius: " << radius << std::endl;
}
};
class Cylinder : public Figures3D {
private:
double radius;
double height;
std::string base_type;
public:
Cylinder(double r, double h, const std::string& base) : radius(r), height(h), base_type(base) {}
double volume() override {
if (base_type == "circle") {
return M_PI * pow(radius, 2) * height;
}
return 0.0;
}
void information() override {
std::cout << "Cylinder: Radius: " << radius << ", Height: " << height << ", Base Type: " << base_type << std::endl;
}
};
int main() {
Ellipse ellipse(4.0, 2.0, 0.0, 0.0);
Circle circle(3.0, 1.0, 1.0);
Sphere sphere(2.0);
Cylinder cylinder(2.0, 3.0, "circle");
Figures2D* figure2D[2] = {&ellipse, &circle};
Figures3D* figure3D[2] = {&sphere, &cylinder};
for (int i = 0; i < 2; ++i) {
figure2D[i]->information();
std::cout << "Area: " << figure2D[i]->area() << ", Perimeter: " << figure2D[i]->perimeter() << std::endl;
}
for (int i = 0; i < 2; ++i) {
figure3D[i]->information();
std::cout << "Volume: " << figure3D[i]->volume() << std::endl;
}
return 0;
}
Этот код создает классы Ellipse
, Circle
, Sphere
и Cylinder
, которые наследуются от базовых классов Figures2D
и Figures3D
. Каждый класс реализует методы area
, perimeter
и information
для вычисления площади, периметра и вывода информации о фигуре. Вы также можете создать экземпляры этих классов и вызвать методы для вывода информации и расчета объема или площади.


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

Информатика 562

Информатика 404

Информатика 31

Информатика 76

Информатика 16

Информатика 41

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