public static void Main()
ExtendedRandom rnd = new ExtendedRandom();
Console.WriteLine($"Случайное число от 1.5 до 6.8: {rnd.NextDouble(1.5, 6.8)}");
Point2d point = new Point2d(2, 4);
Console.WriteLine(point.ToString());
Console.WriteLine(point);
Point2d point1 = new Point2d(2, 4);
Point2d point2 = new Point2d(5, 0);
Console.WriteLine($"Точки {(point.Equals(point1) ? "равны" : "не равны")}");
Console.WriteLine($"Точки {(point.Equals(point2) ? "равны" : "не равны")}");
Circle circ = new Circle(5.2);
Console.WriteLine($"Площадь: {circ.Perimeter()}, периметр: {circ.Square()}");
class ExtendedRandom : Random
public double NextDouble(double min, double max)
return NextDouble() * (max - min) + min;
public Point2d(int x, int y)
public override string ToString()
return $"x = {x}\ny = {y}";
public override bool Equals(object obj)
Point2d point = (Point2d)obj;
return x == point.x && y == point.y;
public abstract double Square();
public abstract double Perimeter();
public Circle(double radius)
public override double Square()
return Math.PI * radius * radius;
public override double Perimeter()
return 2 * Math.PI * radius;