Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82

Как реализовать массив объектов Абстрактного класса

10.11.2020, 19:07. Показов 5550. Ответов 20

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть такое задание:
Написать программу на языках С# в которой идёт со следующими геометрическими фигурами:
1.Треугольник
2.Квадрат
3.Прямоугольник.
В программе имеется массив фигур, с которым можно сделать следующие операции:
1.Добавить новую фигуру
2.Посчитать периметр у всех фигур
3.Посчитать площадь у всех фигур
Для фигуры использовать базовый абстрактный класс фигуры, у которого есть методы посчитать периметр и посчитать площадь фигуры.
не понимаю вот пункт ниже:
Массив фигур в программе должен быть представлен как массив объектов этого базового класса. Массив фигур должен создаваться и вся работа с ним идёт внутри main.
Разъясните, пожалуйста, как реализовать массив объектов.

Базовый абстрактный класс:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Figure
{
    abstract class Figure
    {
        abstract public double S();
        abstract public double P();
 
    }
}

Класс наследник - Треугольник:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Figure
{
    class Triangle: Figure
    {
        public uint LengthSideA { get; set; }
        public uint LengthSideB { get; set; }
        public uint LengthSideC { get; set; }
        public Triangle(uint lengthSideA, uint lengthSideB, uint lengthSideC) 
        {
            LengthSideA = lengthSideA;
            LengthSideB = lengthSideB;
            LengthSideC = lengthSideC;
        }
        
        public override double S()
        {
            double p = (P())/2;
            return Math.Sqrt(p * (p - LengthSideA) * (p - LengthSideB) * (p - LengthSideC));
        }
        public override double P()=>LengthSideA + LengthSideB + LengthSideC;
 
    }
}

Класс наследник - прямоугольник
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Figure
{
    class Rectangle:Figure
    {
        public uint Length { get; set; }
        public uint Width { get; set; }
        public Rectangle(uint lentgh, uint width)
        {
            Length = Length;
            Width = width;
        }
        public override double P() => 2 * (Length + Width);
        public override double S() => Length * Width;
 
 
    }
}


Класс наследник - квадрат
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Figure
{
    class Square:Rectangle
    {
        public double length { get; set; }
        public Square() : this(1) { }
        public Square(uint length ):base(length,length)
        {
 
        }
        public override double P() => 4 * Length;
        public override double S() => 2 * Length;
 
    }
}


Класс - программа
???
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2020, 19:07
Ответы с готовыми решениями:

Можно ли реализовать наследование абстрактного класса
Можно ли на шарпе реализовать наследование абстрактного класса двумя независимыми друг от друга производными?

Реализовать абстрактные функции-члены абстрактного базового класса в производных классах
1. Определить иерархию классов 2. Определить и построить абстрактный класс, который содержит: абстрактные методы, абстрактные свойства,...

Массив объектов абстрактного класса
Есть абстрактный класс с двумя чисто виртуальными методами, от него наследуются два класса в которых эти методы переопределены и есть класс...

20
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16154 / 11275 / 2890
Регистрация: 21.04.2018
Сообщений: 33,153
Записей в блоге: 2
12.11.2020, 12:32
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от m054 Посмотреть сообщение
Возможно Вы это сделали по привычке, а возможно в этом есть какой-то смысл?
Просто короче писать чем double.
А в данном случае равнозначно.

Добавлено через 1 минуту
В реальном коде var не использую.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2020, 12:32

Реализовать класс "Динамический массив"
1. Согласно заданию реализовать класс абстрактного типа данных (далее АТД) как динамический массив. Для этого определение класса должно...

Переопределение конструктора копирования абстрактного класса, на клонирование дочерних объектов
Здравствуйте. Помогите решить следующую проблему. Есть абстрактный класс Object, у которого есть метод AddChild(Object* child)...

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся массив указателей на базовый абстрактный класс,...

Массив объектов одного класса как поле другого класса
Доброе время суток. Мне тут в универе задали лабу, нужно создать класс полем которого будет массив объектов класса из предыдущей лабы и в...

Как правильно создать массив объектов текущего класса в методе данного класса?
Привет! Ставится задача создания метода, который формирует массив объектов. Правильно ли делать этот метод внутри класса, экземпляром...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru