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)
public virtual int GetCoordinate(string name)
return name == "x" ? x : (name == "y" ? y : -1);
public new string ToString()
public virtual new bool Equals(object obj)
Point2d point = (Point2d)obj;
if (point.x == this.x && point.y == this.y)
public abstract double Square();
public abstract double Perimeter();
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 static void Main()
ExtendedRandom er = new ExtendedRandom();
Console.WriteLine(er.NextDouble(1, 5));
Point2d point = new Point2d();
Point2d point1 = new Point2d(1, 5);
Point2d point2 = new Point2d(2, 2);
Console.WriteLine(point.ToString());
Console.WriteLine(point.Equals(point));
if (point1.Equals(point1))
Console.WriteLine("Истина");
Console.WriteLine("Ложь");
if (point1.Equals(point2))
Console.WriteLine("Истина");
Console.WriteLine("Ложь");
Circle round = new Circle(14);
Console.WriteLine("Площадь = {0:F}",round.Square());
Console.WriteLine("Периметр = {0:F}",round.Perimeter());