1

Тема: Створити клас Triangle С#

Створити клас Triangle з віртуальними методами для обчислення площі та периметру. На основі цього класу створити класи, які представляють рівносторонні, прямокутні та рівнобедрені трикутники. Випадковим чином створити певну кількість трикутників кожного виду, щоб їх сумарна кількість дорівнювала n . Для рівносторонніх та прямокутних обчислити суму площ, а для рівнобедрених – суму всіх периметрів.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace zadacha2
{
    class Program
    {
        public class Triangle
        {
            public double SideA { get; set; }
            public double SideB { get; set; }
            public double SideC { get; set; }
            public Triangle(double sideA, double sideB, double sideC)
            {
                SideA = sideA;
                SideB = sideB;
                SideC = sideC;
            }
            public virtual double CalculateArea()
            {
                double s = (SideA + SideB + SideC) / 2;
                return Math.Sqrt(s * (s - SideA) * (s - SideB) * (s - SideC));
            }
            public virtual double CalculatePerimeter()
            {
                return SideA + SideB + SideC;
            }
        }
        // Рівносторонній трикутник
        public class EquilateralTriangle : Triangle
        {
            public EquilateralTriangle(double sideA) : base(sideA, sideA, sideA)
            {
            }
        }
        // Прямокутний трикутник
        public class RightAngledTriangle : Triangle
        {
            public RightAngledTriangle
            (double sideA, double sideB) : base(sideA, sideB, Math.Sqrt(Math.Pow(sideA,2) + Math.Pow(sideB,2)))
            {
            }
        }
        // Рівнобедрений трикутник
        public class IsoscelesTriangle : Triangle
        {
            public IsoscelesTriangle(double sideA, double sideB): base(sideA, sideB, sideB)
            {
            }
        }
        static void Main(string[] args)
        {
            // Створення трикутників випадковим чином
            Random random = new Random();
            int n;
            List<Triangle> triangles = new List<Triangle>();
            for (int i = 0; i < n; i++)
            {
                triangles.Add(new EquilateralTriangle(random.NextDouble()));
                triangles.Add(new RightAngledTriangle(random.NextDouble(), random.NextDouble()));
                triangles.Add(new IsoscelesTriangle(random.NextDouble(), random.NextDouble()));
            }
            // Сума площ рівносторонніх і прямокутних трикутників
            // Сума периметрів рівнобедрених трикутників
            double equilateralAreaSum = 0;
            double rightAngledAreaSum = 0;
            double isoscelesPerimeterSum = 0;
            foreach (Triangle triangle in triangles)
            {
                if (triangle is EquilateralTriangle)
                {
                    equilateralAreaSum += triangle.CalculateArea();
                }
                else if (triangle is RightAngledTriangle)
                {
                    rightAngledAreaSum += triangle.CalculateArea();
                }
                else if (triangle is IsoscelesTriangle)
                {
                    isoscelesPerimeterSum += triangle.CalculatePerimeter();
                }
            }
        }
    }
}

2

Re: Створити клас Triangle С#

Вибачте, це ви хвалитеся своїм кодом чи просто забули питання дописати?