Определить класс КОЛЬЦО через вычитание двух кругов - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо задать 2 класса и опеределить операцию вычитания

Решение задачи: «Определить класс КОЛЬЦО через вычитание двух кругов»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace CircleRing
{
    class Circle
    {
        public double D { get; set; }
        public double Area {
            get { return Math.PI*D*D/4.0; }
        }
 
        public static Ring operator -(Circle c1, Circle c2)
        {
            if (c1.D - c2.D < Double.Epsilon)
            {
                throw new Exception("Диаметр круга меньше диаметра вычитаемого круга!");
            }
            return new Ring(){InnerD = c2.D, OutD = c1.D};
        }
    }
 
    class Ring
    {
        public double InnerD { get; set; }
        public double OutD { get; set; }
        public double Area {
            get { return getArea(); }
        }
        private double getArea()
        {
            if (OutD-InnerD<Double.Epsilon)
            {
                throw new Exception("Внешний диаметр кольца больше внутреннего!");
            }
            return (Math.PI * OutD * OutD / 4.0) - (Math.PI * InnerD * InnerD / 4.0);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Circle c1 = new Circle() {D = 15};
            Circle c2 = new Circle() { D = 10 };
            var x = c1 - c2;
            Console.WriteLine(x.GetType());
            Console.WriteLine("InnerD = {0}; OutD = {1}", x.InnerD, x.OutD);
            Console.WriteLine("Area = {0}", x.Area);
            Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы