Данный отчёт сгенерирован 04.04.2023 06:21:13 UTC.
HTML версия (этот сайт) сгенерирован 04.04.2023 06:21:31 UTC.
Коммит: [bfeb65b9] add automatic zip creation
04.04.2023 06:21:13
Задача: Абстрактний Базовий Прямокутник 04.04.2023 06:21:13
Описание: Потрібно оголосити клас BaseRect: abstract class BaseRect { public virtual double X { set; get; } public virtual double Y { set; get; } public virtual double W { set; get; } public virtual double H { set; get; } public BaseRect(double x, double y, double w, double h) { X = x; Y = y; H = h; W = w; } } І додати до нього відкриті віртуальні методи: double S() // площа прямокутника double P() // периметр прямокутника double R() // відношення площі до периметра прямокутника разом із реалізацією. Успадкувати від BaseRect клас Square - квадрат, в якому дати реалізацію лише властивостей (для квадрата W і H означають те саме - довжину сторони квадрата). 04.04.2023 06:21:13
Решений: 40 04.04.2023 06:21:13
Абстрактний Базовий Прямокутник 04.04.2023 06:21:13
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S() {
        return W*H;
    }
    public virtual double P() {
        return 2*(W + H);
    }
    public virtual double R() {
        return S()/P();
    }
}

class Square: BaseRect {
    public override double W 
    {
        set { base.W = value; base.H = value; }
        get { return base.W; }
    }

    public override double H 
    {
        set { base.H = value; base.W = value; }
        get { return base.H; }
    }
    
    public Square(double x, double y, double w) : base(x, y, w, w) { }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }
    
    public virtual double S()
    {
        return W*H;
    }
    
    public virtual double P()
    {
        return 2*(W+H);
    }
    
    public virtual double R()
    {
        return S()/P();
    }
}
class Square : BaseRect
{
    public override double W
    {
        get { return base.W; }
        set { base.W = value; base.H = value; }
    }
    
    public override double H
    {
        get { return base.H; }
        set { base.H = value; base.W = value; }
    }
    
    public Square(double x, double y, double w) : base(x, y, w, w)
    {}
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }
           
    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S() => W*H;
         
    public virtual double P() => 2*(W+H);
          
    public virtual double R() => S()/P();
          
}

class Square : BaseRect
{
    public Square(double x, double y, double w) : base(x, y, w, w)
    {
    }
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }
    
    public virtual double S() => W * H;
    public virtual double P() => (W + H) * 2;
    public virtual double R() => S() / P();
}

class Square: BaseRect
{
    public Square(double x, double y, double w)
        :base(x,y,w,w) {}
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S()
    {
        return H*W;
    }
    
    public virtual double P()
    {
        return 2*W + 2*H;
    }
    
    public virtual double R()
    {
        return S()/P();
    }
}

class Square: BaseRect 
{
    public Square(double x, double y, double a) : base(x,y,a,a)
    {
        
    }
}
 abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x;
        Y = y;
        H = h;
        W = w;
    }

    public virtual double S()
    {
        return W * H;
    }

    public virtual double P()
    {
        return 2 * (W + H);
    }

    public virtual double R()
    {
        return S() / P();
    }
}

class Square: BaseRect {
    public Square(double x, double y, double side) : base(x, y, side, side)
    {
    }

    public override double W
    {
        get { return base.W; }
        set { base.W = value; base.H = value; }
    }

    public override double H
    {
        get { return base.H; }
        set { base.H = value; base.W = value; }
    }
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    public virtual double S()
    {
        return W * H;
    }
    public virtual double P()
    {
        return 2 * (W + H);
    }
    public virtual double R()
    {
        return S() / P();
    }
}

class Square: BaseRect
{
    public override double W
    {
        set { base.W = value; base.H = value; }
        get { return base.W; }
    }
    public override double H
    {
        set { base.H = value; base.W = value; }
        get { return base.H; }
    }
    public Square(double x, double y, double w) : base(x, y, w, w) 
    { }
}
 abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }

    public virtual double S() => W*H;

    public virtual double P() => 2*(W+H);
    public virtual double R() => S()/P();
}

class Square: BaseRect {
    public override double X { get => base.X; set => base.X = value; }
    public override double Y { get => base.Y; set => base.Y = value; }
    public override double W { get => base.W; set => base.W = value; }
    public override double H { get => base.H; set => base.H = value; }

    public Square(double x, double y, double w) : base(x, y, w, w)
    {
    }
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }
    
    public virtual double S() => W * H;
    public virtual double P() => (W + H) * 2;
    public virtual double R() => S() / P();
}

class Square: BaseRect
{
    public Square(double x, double y, double w)
        :base(x,y,w,w) {}
}
 abstract class BaseRect 
{
   public virtual double X { set; get; }
   
   public virtual double Y { set; get; }
    
   public virtual double W { set; get; }
    
   public virtual double H { set; get; }

   public BaseRect(double x, double y, double w, double h)
   {
       X = x; Y = y;  H = h; W = w;
   } 
   
   public virtual double S() => W * H;
   
   public virtual double P() => 2 * (W + H);
   
   public virtual double R() => S() / P();
   
}

class Square: BaseRect 
{
    
    public Square(double x, double y, double a) : base(x, y, a, a){}
    
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public BaseRect(){}
    
    public virtual double S() => W * H;
    
    public virtual double P() => (W + H) * 2;
    
    public virtual double R() => S() / P();

}

class Square : BaseRect 
{
    public override double X { set; get; }
    public override double Y { set; get; }
    public override double W { set; get; }
    public override double H { set; get; }
    
    public Square(double x, double y, double sideLength)
    {
        X = x;
        Y = y;
        W = sideLength;
        H = sideLength;
    }
}
 abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S(){
        return W*H;
    }
    
    public virtual double P(){
        return 2*(W+H);
    } 
    
    public virtual double R(){
        return this.S()/this.P();
    }
}

class Square: BaseRect {
    public override double W { set; get; }
    public override double H { set; get; }
    public Square(double x, double y, double side) : base(x, y, side, side)
    {
        X = x;
        Y = y;
        H = W = side;
    }
}
 abstract class BaseRect 
{
    public virtual double X { get; set; }
    
    public virtual double Y { get; set; }
    
    public virtual double W { get; set; }
    
    public virtual double H { get; set; }
    
    public BaseRect(double x, double y, double w, double h)
    {
        this.X = x;
        this.Y = y;
        this.W = w;
        this.H = h;
    }
    
    public virtual double S()
    {
        return this.W * this.Y;
    }
    
    public virtual double P()
    {
        return 2 * (this.W + this.H);
    }
    
    public virtual double R() 
    {
        return S() / P();
    }
}

class Square: BaseRect 
{
    public Square(double x, double y, double w)
    : base(x, y, w, w)
    {
        
    }
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }
    
    public virtual double S() {
        return W * H;
    }
    
    public virtual double P() {
        return (W + H) * 2;
    } 
    
    public virtual double R() {
        return S() / P();
    }
    
    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }
    
}

class Square: BaseRect 
{
    public Square(double x, double y, double w) : base(x, y, w, w) { }
    
    public override double W
    {
        get { return base.W; }
        set { base.W = value; base.H = value; }
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S()
    {
        return W * H;
    }

    public virtual double P()
    {
        return 2 * (W + H);
    }

    public virtual double R()
    {
        return S() / P();
    }
}

class Square : BaseRect
{
    public Square(double x, double y, double sideLength) : base(x, y, sideLength, sideLength)
    {
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x;
        Y = y;
        H = h;
        W = w;
    }

    public virtual double S()
    {
        return W * H;
    }

    public virtual double P()
    {
        return 2 * (H + W);
    }

    public virtual double R()
    {
        return S() / P();
    }
}

class Square : BaseRect
{
    public Square(double x, double y, double a)
        : base(x, y, a, a) { }
}
abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h) {
        X = x;
        Y = y;
        H = h;
        W = w;
    }
    
    public abstract double S();
    public abstract double P();
    public abstract double R();
}

class Square: BaseRect {
    public Square(double x, double y, double w) : base(x, y, w, w) {}
    
    public override double H {
        get { return base.H; }
        set { base.W = value; base.H = value; }
    }
    
    public override double W {
        get { return base.W; }
        set { base.W = value; base.H = value; }
    }

    public override double S() {
        return W*W;
    }
    
    public override double P() {
        return W*4;
    }
    
    public override double R() {
        return S()/P();
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }
    public double S()
    {
        return W * H;
    }
    public double P()
    {
        return W * 2 + H * 2;
    } // периметр прямокутника
    public double R()
    {
        return S() / P();
    } // відношення площі до периметра прямокутника
}

class Square : BaseRect
{
    public Square(double x, double y, double side) : base(x, y, side, side) { }

}
 public abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S() => W * H; 
    public virtual double P() => (H + W) * 2;
    public virtual double R() => S() / P();
}

public class Square : BaseRect
{
    public Square(double x, double y, double a) : base(x, y, a, a)
    {
    }
}
 public abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }

    public virtual double S() => W * H;
    public virtual double P() => 2 * W + 2 * H;
    public virtual double R() => S()/P();
}

public class Square : BaseRect
{
    private double _sideLength;

    public Square(double sideLength, double x, double y) :base(x,y,sideLength,sideLength)
    {
    }
    public override double W { set => _sideLength = value;
        get => _sideLength; }
    public override double H { set => _sideLength = value;
        get => _sideLength; }
}
 public abstract class BaseRect
    {
        public virtual double X { set; get; }
        public virtual double Y { set; get; }
        public virtual double W { set; get; }
        public virtual double H { set; get; }

        protected BaseRect(double x, double y, double w, double h)
        {
            X = x; Y = y; H = h; W = w;
        }

        public virtual double S() => this.W * this.H;
        public virtual double P() => (this.X + this.W) * 2 + (this.Y + this.H) * 2;
        public virtual double R() => S() / P();
    }

    public class Square : BaseRect
    {
        public double Side => W;
        public Square(double x, double y, double side) : base(x, y, side, side)
        {
        }
    }
 abstract class BaseRect
    {
        public virtual double X { set; get; }
        public virtual double Y { set; get; }
        public virtual double W { set; get; }
        public virtual double H { set; get; }

        public BaseRect(double x, double y, double w, double h)
        {
            X = x; Y = y; H = h; W = w;
        }

        public virtual double S()
            => W * H;

        public virtual double P()
            => (W + H) * 2;

        public virtual double R()
            => S() / P();
    }

    class Square : BaseRect
    {
        private double w;
        private double h;
        override public double W { set => this.h = this.w = value; }
        override public double H { set => this.h = this.w = value; }

        public Square(double x, double y, double w) : base(x, y, w, w)
        {
        }
    }
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S()
    {
        return H * W;
    }

    public virtual double P()
    {
        return (H + W) * 2;
    }

    public virtual double R()
    {
        return S() / P();
    }
}

class Square: BaseRect
{
    public Square(double x, double y, double side):base(x, y, side, side) { }
}
 abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    public virtual double S(){
        return W * H;
    }
    public virtual double P(){
        return 2 * (W + H);
    }
    public virtual double R(){
        return this.P() / this.S();
    }
}

class Square: BaseRect {
    public Square(double x, double y, double side) : base(x, y, side, side){
        
    }
}
 public abstract class BaseRect {
            public virtual double X { set; get; }
            public virtual double Y { set; get; }
            public virtual double W { set; get; }
            public virtual double H { set; get; }

            public BaseRect(double x, double y, double w, double h) {
                X = x; Y = y; H = h; W = w;
            }
            public virtual double S() {
                return W * H;
            }
            public virtual double P() {
                return (W + H) * 2;
            }
            public virtual double R() {
                return S()/ P();
            }

        }

        public class Square : BaseRect {
            public Square(double x, double y, double w) : base(x,y,w,w) {                
            }
        }
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S() => W * H;
    public virtual double P() => (W + H) * 2;
    public virtual double R() => S() / P();
}

class Square : BaseRect
{
    public Square(double x, double y, double w) : base(x, y, w, w) { }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }

    public virtual double S()
    {
        return (X + W) * (Y + H);
    }

    public virtual double P()
    {
        return (X + W) * 2 + (Y + H) * 2;
    }

    public virtual double R()
    {
        return ((X + W) * (Y + H))/(X + W) * 2 + (Y + H) * 2;
    }
}

class Square : BaseRect
{
    public Square(double a, double b, double c) : base(a,b,c,c){}
    public override double X { get; set; }
    public override double Y { get; set; }
    public override double W { get; set; }
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public abstract double S();
    public abstract double P();
    public abstract double R();
}

class Square : BaseRect
{
    public Square(double w, double h, double k) : base(0, 0, w, h)
    {
    }

    public override double P()
    {
        return (W + H) * 2;
    }

    public override double R()
    {
        return S() / P();
    }

    public override double S()
    {
        return W * H;
    }
}
 abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    public virtual double S(){
        return W*H;
    }
    public virtual double P(){
        return 2*(W+H);
    }
    public virtual double R(){
        return S()/P();
    }
}

class Square: BaseRect {
    public override double W 
    {
        set { base.W = value; base.H = value; }
        get { return base.W; }
    }
    public override double H 
    {
        set { base.H = value; base.W = value; }
        get { return base.H; }
    }
    public Square(double x, double y, double w) : base(x,y,w,w){
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S() {
        return W*H;
    }
    public virtual double P() {
        return 2*(W + H);
    }
    public virtual double R() {
        return S()/P();
    }
}

class Square: BaseRect {
    public override double W 
    {
        set { base.W = value; base.H = value; }
        get { return base.W; }
    }

    public override double H 
    {
        set { base.H = value; base.W = value; }
        get { return base.H; }
    }
    
    public Square(double x, double y, double w) : base(x, y, w, w) { }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S() => W * H;

    public virtual double P() => 2 * (W + H);

    public virtual double R() => S() / P();
}

class Square : BaseRect
{
    public Square(double x, double y, double a) : base(x, y, a, a)
    {
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S()
    {
        return W*H;
    }
    
    public virtual double P()
    {
        return W+W+H+H;
    }
    
    public virtual double R()
    {
        return S() / P();
    }
}

class Square: BaseRect
{
    public override double X { get; set; }
    public override double Y { get; set; }
    private double _sideLength;
    public override double W { set => _sideLength = value; get => _sideLength; }
    public override double H { set => _sideLength = value; get => _sideLength; }
    
    public Square(double x, double y, double side) : base(x, y, side, side) { }
}
 abstract class BaseRect {
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S() => H*W;
    public virtual double P() => (H+W)*2;
    public virtual double R() => S()/P();
    
}
class Square: BaseRect {
    public Square(double x , double y,double w):base(x,y,w,w){
        
    }
}
 abstract class BaseRect
    {
        protected double x;
        protected double y;
        protected double width;
        protected double height;
        public virtual double X {
            set {
                x = value;
            }
            get{
                return x;
                }
        }
        public virtual double Y
        {
            set
            {
                y = value;
            }
            get
            {
                return y;
            }
        }
        public virtual double W
        {
            set
            {
                width = value;
            }
            get
            {
                return width;
            }
        }
        public virtual double H
        {
            set
            {
                height= value;
            }
            get
            {
                return height;
            }
        }

        public BaseRect(double x, double y, double w=0, double h=0)
        {
            X = x;
            Y = y;
            H = h;
            W = w;
            
        }
        public BaseRect()
        {
            X = 0;
            Y = 0;
            H = 0;
            W = 0;

        }

        public virtual double S() { 
            return H*W;
        } // площа прямокутника
        public virtual double P() {
            return (H + W) * 2;
        } // периметр прямокутника
        public virtual double R()
        {
            return S() / P();
        }// відношення площі до периметра прямокутника
    }
    class Square : BaseRect
    {
        public override double W { get 
            {
                return width;
            } set {
                width = height = value;
            }
        }
        public override double H
        {
            get
            {
                return height;
            }
            set
            {
                height = width = value;
            }
        }

        public Square(double x, double y, double a)
        {
            X = x; Y = y; W = a; H = a;
        }
    }
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S() => H * W;

    public virtual double P() => (H + W) * 2;

    public virtual double R() => S() / P();

}

class Square : BaseRect 
{
    public override double X { get; set; }
    public override double Y { get; set; }
    public override double H { get; set; }
    public override double W { get; set; }
    public Square(double x, double y, double a) : base(x, y, a, a)
    {
        X = x;
        Y = y;
        H = W = a;
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x;
        Y = y;
        H = h;
        W = w;
    }

    public virtual double S() { return W * H; }
    public virtual double P() { return 2 * (W + H); }
    public double R() { return S() / P(); }
}

class Square: BaseRect {
    public Square(double x, double y, double pop):base(x,y,pop,pop){}
}
 public abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }
    
    public BaseRect(double x, double y, double h, double w)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S()
    {
        return W * H;
    }
    
        public virtual double P()
    {
        return (W + H) * 2;
    }
    
        public virtual double R()
    {
        return S() / P();
    }
}

class Square: BaseRect 
{
    public override double H
    {
        set { base.W = value; }
        get { return base.W; }
    }

    public Square(double x, double y, double h): base(x, y, h, h) {}
}
 abstract class BaseRect 
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }
    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y;  H = h; W = w;
    }
    
    public virtual double S()=>W*H;
    public virtual double P()=>2*W+2*H;
    public virtual double R()=>S()/P();
}

class Square: BaseRect
{
    public override double W{get;set;}
    public override double H{get;set;}
    public Square(double x, double y, double w, double h=0):base(x,y,w,w)
    {
    }

    
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }

    public virtual double S() => W * H;
    public virtual double P() => 2 * (H + W);
    public virtual double R() => S() / P();
}

class Square : BaseRect
{
    public override double W { set; get; }
    public override double H { set; get; }
    public Square(double x,double w, double h) : base(0,x, w, h)
    {
        X = x; W=w; H=h; 
    }
}
 abstract class BaseRect
{
    public virtual double X { set; get; }
    public virtual double Y { set; get; }
    public virtual double W { set; get; }
    public virtual double H { set; get; }

    public BaseRect(double x, double y, double w, double h)
    {
        X = x; Y = y; H = h; W = w;
    }
    public virtual double S() => W * H;
    public virtual double P() => (W + H)*2;
    public virtual double R() => S()/P();
}

class Square: BaseRect
{
    public Square(double x, double y, double w, double h = 0) : base(x, y, w, w) { }

}