Building Base Building Base
Moderate
EN ES FR JA RU Ukrainian

Сингулярність настала і нам необхідно побудувати ідеальне робо-місто для наших повелителів. В цьому сяючому роботрополісі всі будівлі будуть прямокутними, а всі вулиці будуть знаходитися на напрямках "південь-північ" та "схід-захід" і сформують дивовижну вуличну мережу. Перед тим, як почати, треба створити клас для представлення ідеальної будівлі.

Оскільки всі будівлі в місті прямокутні, а їхні стіни паралельні вулицям, ми можемо визначити будь-яку будівлю, використовуючи тільки координати "південно-західного"... , як результат - північний кут будівлі має вище значення координат ніж південний кут будівлі. Щоб виконати це завдання, нам потрібно використати декілька операцій. Опис класу дивіться нижче.

Повертає новий екземпляр класу Building з "південно-західним" кутом, який знаходиться за координатами [south, west], довжиною стін за напрямком "захід-схід" width_WE та "північ-південь" width_NS, а також висотою будівлі, як значення height. Висота ("height") - додатнє число зі стандартним значенням 10.

>>> Building(10, 10, 1, 2, 2)
Building(10, 10, 1, 2, 2)
>>> Building(0, 0, 10.5, 2.546)
Building(0, 0, 10.5, 2.546, 10)

corners()

Повертає словник (dict) з координатами кутів будівлі. Словник має наступні ключі: "north-west", "north-east", "south-west", "south-east". Значення є списками (list) або кортежами (tuple) з двома числами.

>>> Building(1, 2, 2, 2).corners()
{"north-west": [3, 2], "north-east": [3, 4], "south-west": [1, 2], "south-east": [1, 4]}

area()

Повертає площу будівлі.

>>> Building(1, 2.5, 4.2, 1.25).area()
5.25

volume()

Повертає об'єм будівлі.

>>> Building(1, 2.5, 4.2, 1.25, 101).volume()
530.25

__repr__()

Це зображення об'єкта Building в текстовому вигляді. Метод використовується для функцій "print" чи "str" (перетворення в об'єкт типу рядок). Повертає рядок наступного вигляду:
"Building({south}, {west}, {width_we}, {width_ns}, {height})"

>>> str(Building(0, 0, 10.5, 2.546))
"Building(0, 0, 10.5, 2.546, 10)"

В цьому завданні всі дані будуть коректними, тому вам не треба реалізовувати перевірку значень.

Вхідні дані: Оператори та вирази, що відносяться до класу Building.

Вихідні дані: За логікою, описаною вище.

Як це використовується: Тут ви зможете вивчити, як написати простий клас з мінімальним функціоналом для подальшого прославлення Робонії.

Передумови: Всі дані коректні.

You should be an authorized user in order to see the full description and start solving this mission.