Олимпиадный тренинг

Задача . Класс Point


Задача

Темы:

В систему сдать только класс Point.

Класс Point должен иметь два поля: x - координата по оси Ox, y - координата по оси Oy.

Для класса Point определить конструктор

__init__(self, x, y=None, polar=False)

который может принимать следующие виды параметров:

  • два числа и логическую переменную polar (по умолчанию False). Создается точка с декартовыми координатами, если polar False, иначе координаты точки считаются в полярной системе координат (расстояние до начала координат r и углом между осью Ox и радиус-вектором точки 𝜑 (полярный угол в радианах)).
  • объект класса Point. Создается копия переданной точки.

Методы:

  • __abs__() - расстояние от начала координат до точки.
  • dist() - расстояние от начала координат до точки. Если в метод передана точка, то посчитать расстояние от точки до точки (в метод могут переданы как координаты точки, так и сам объект).

Необходимо определить метод __str__, который выводит координаты точки в виде (x, y).


Примеры
Входные данныеВыходные данные
1 Q = Point(4, 7)
print(Q)
print(Q.dist())
print(Q.dist(-5, -1))
W = Point(10, 0.5, True)
print(W)
print(W.dist(Q))
(4, 7)
8.06225774829855
12.041594578792296
(8.775825618903728, 4.79425538604203)
5.260591187707116

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python19
Комментарий учителя