static void Main()
        {
            Point p = new Point();

            p.Display();
            Console.WriteLine("p.Area для Point = " + p.Area);
            p = new Circle(1, 2, 6);
            p.Display();
            Console.WriteLine("p.Area для Circle = " + p.Area);
            p = new Square(3, 5, 8);
            p.Display();
            Console.WriteLine("p.Area для Square = " + p.Area);
            Console.WriteLine();

            Point[] array       = FigArray();
            int     circleCount = array.Count(x => x is Circle);
            int     squareCount = array.Count(x => x is Square);

            Console.WriteLine($"CIRCLES. Count: {circleCount}; " +
                              $"Average area: {array.Sum(x => x is Circle ? x.Area : 0) / circleCount:f3}; " +
                              $"Average perimeter: {array.Sum(x => x is Circle y ? y.Len : 0) / circleCount:f3}");
            Console.WriteLine($"SQUARES. Count: {squareCount}; " +
                              $"Average area: {array.Sum(x => x is Square ? x.Area : 0) / squareCount:f3}; " +
                              $"Average perimeter: {array.Sum(x => x is Square y ? y.Len : 0) / squareCount:f3}");
            Array.Sort(array, (x, y) => x.Area.CompareTo(y.Area));
            Array.ForEach(array, x => x.Display());
        }
 static void Main(string[] args)
 {
     Point point = new Point();
     point.Display();
     Console.WriteLine($"point.Area для Point = {point.Area}");
     point = new Circle(1, 2, 6);
     point.Display();
     Console.WriteLine($"point.Area для Circle = {point.Area}");
     point = new Square(3, 5, 8);
     point.Display();
     Console.WriteLine($"point.Area для Square = {point.Area}");
     Console.ReadLine();
 }
        static void Main()
        {
            Point p = new Point();

            p.Display();
            Console.WriteLine("p.Area для Point = " + p.Area);
            p = new Circle(1, 2, 6);
            p.Display();
            Console.WriteLine("p.Area для Circle = " + p.Area);
            p = new Square(3, 5, 8);
            p.Display();
            Console.WriteLine("p.Area для Square = " + p.Area);
            Point[] points;
            int     numberOfCircles;
            int     numberOfSquares;

            FigArray(out points, out numberOfCircles, out numberOfSquares);
            double areaOfCircles      = 0;
            double perimeterOfCircles = 0;
            double areaOfSquares      = 0;
            double perimeterOfSquares = 0;

            double[] areas = new double[points.Length];
            for (int i = 0; i < points.Length; i++)
            {
                areas[i] = points[i].Area;
                if (i < numberOfCircles)
                {
                    areaOfCircles      += points[i].Area;
                    perimeterOfCircles += ((Circle)points[i]).Len;
                }
                else
                {
                    areaOfSquares      += points[i].Area;
                    perimeterOfSquares += ((Square)points[i]).Len;
                }
            }
            Console.WriteLine($"Количество кругов = {numberOfCircles}, средняя их площадь = {(areaOfCircles / numberOfCircles):f3}, средний их периметр = {(perimeterOfCircles / numberOfCircles):f3}");
            Console.WriteLine($"Количество кругов = {numberOfSquares}, средняя их площадь = {(areaOfSquares / numberOfSquares):f3}, средний их периметр = {(perimeterOfSquares / numberOfSquares):f3}");
            Array.Sort(areas, points);
            for (int i = 0; i < points.Length; i++)
            {
                points[i].Display();
            }
        }
        static void Main(string[] args)
        {
            Point p = new Point();

            p.Display();
            Console.WriteLine("p.Area for Point = " + p.Area);
            p = new Circle(1, 2, 6);
            p.Display();
            Console.WriteLine("p.Area for Circle = " + p.Area);
            p = new Square(3, 5, 8);
            p.Display();
            Console.WriteLine("p.Area for Square = " + p.Area);
            Point[] arr = FigArray();
            int     circle_cnt = 0, square_cnt = 0;

            for (int i = 0; i < arr.Length; ++i)
            {
                if (arr[i] is Circle)
                {
                    circle_cnt++;
                }
                else
                {
                    square_cnt++;
                }
            }
            Console.WriteLine("Circles: " + circle_cnt);
            Console.WriteLine("Squares: " + square_cnt);
            double area = 0, len = 0;

            for (int i = 0; i < arr.Length; ++i)
            {
                area += p.Area;
                len  += p.Len;
            }
            area /= arr.Length;
            len  /= arr.Length;
            Console.WriteLine("Area: " + area);
            Console.WriteLine("Len: " + len);
            Array.Sort(arr, (x, y) => x.Area.CompareTo(y.Area));
        }