Вопрос задан 23.06.2023 в 01:50. Предмет Информатика. Спрашивает Груздева Саша.

Задание на С++. Тема: Фигура 1. Написать классы Эллипс, Окружность, наследуемые из класса

Figures2D. Класс окружность наследуется из класса Эллипс. В private полях классов прописываются длины сторон (для треугольника), полуоси (для эллипса), радиус (для окружности). В каждом классе необходимо прописать методы perimeter() и area() для вычисления периметра (для эллипс и окружности- длина дуги) и площади фигур, а также метод information(), выводящий на экран координаты центра фигуры и параметры фигуры (по аналогии с классами прямоугольник и квадрат). 2. Написать класс Сфера, наследуемый из класса Figures3D. В private полях указать радиус сферы. С помощью метода values рассчитать объем сферы. Переопределить метод information(), выводящий информацию о сфере. 3. Написать класс Цилиндр, наследуемый из класса Figures3D. В private полях указать высоту цилиндра и тип основания. С помощью метода values рассчитать объем цилиндра. Переопределить метод information(), выводящий информацию о сфере.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Князева Кристина.
Шалашовшалльатальалаьдвдвщвдщалащьалаьала
0 0
Отвечает нейросеть 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 для вычисления площади, периметра и вывода информации о фигуре. Вы также можете создать экземпляры этих классов и вызвать методы для вывода информации и расчета объема или площади.

0 0

Похожие вопросы

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

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

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