class ExtendedRandom : Random
public double NextDouble(double min, double max)
return NextDouble() * (max - min) + min;
public Point2d(int x, int y)
public Point2d() : this(1, 1)
get { return x > y ? x : y; }
public virtual void PrintInfo()
Console.Write("{0};{1}", x, y);
public virtual int GetCoordinate(string name)
return name == "x" ? x : (name == "y" ? y : -1);
public new string ToString()
return $"x = {x}\ny = {y}\n";
public new bool Equals(object obj)
Point2d point = (Point2d)obj;
if (point.x == this.x && point.y == this.y)
public Circle(double radius)
public override double Square()
return Math.PI * this.radius * this.radius;
public override double Perimeter()
return 2 * Math.PI * this.radius;
public abstract double Square();
public abstract double Perimeter();
static void Main(string[] args)
ExtendedRandom rnd = new ExtendedRandom();
Point2d point = new Point2d();
Console.WriteLine(point.ToString());
Point2d obj1 = new Point2d();
Point2d obj2 = new Point2d();
Console.WriteLine(obj1.Equals(obj2));
Circle circle = new Circle(10);
Console.WriteLine($"Площадь = {circle.Square():F}");
Console.WriteLine($"Периметр = {circle.Perimeter():F}");