Files
2023-03-28 21:16:03 +05:30

5.3 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5e444147903586ffb414c94f Калькулятор площі багатокутника 10 462363 polygon-area-calculator

--description--

Ви будете працювати над цим проєктом з нашим стартовим кодом Replit.

  • Почніть з імпорту проєкту на Replit.
  • Потім ви побачите вікно .replit.
  • Оберіть Use run command та натисніть кнопку Done.

--instructions--

У цьому проєкті ви будете використовувати об’єктноорієнтоване програмування, щоб створити класи Rectangle (прямокутник) та Square (квадрат). Клас Square повинен бути підкласом до Rectangle і наслідувати його методи та атрибути.

Клас Rectangle

При створенні об’єкту Rectangle ви повинні ініціалізувати його, використовуючи атрибути width та height. Клас також повинен містити наступні методи:

  • set_width
  • set_height
  • get_area: повертає площу (width * height)
  • get_perimeter: повертає периметр (2 * width + 2 * height)
  • get_diagonal: повертає діагональ ((width ** 2 + height ** 2) ** .5)
  • get_picture: повертає рядок, який представляє фігуру лініями «*». Кількість ліній повинна дорівнювати висоті, а кількість «*» у кожному рядку повинна дорівнювати ширині. Наприкінці кожного рядка має бути новий рядок (\n). Якщо ширина або висота більші за 50, то повинен повернутись рядок «Too big for picture.» (завеликий для зображення).
  • get_amount_inside: приймає іншу фігуру (квадрат чи трикутник) як аргумент. Повертає ту кількість разів, скільки передана фігура може поміститися у фігурі (без обертання). Наприклад, прямокутник з шириною 4 і висотою 8 може вмістити два квадрати зі сторонами 4.

Додатково, якщо екземпляр Rectangle представлений як рядок, він має виглядати так: Rectangle(width=5, height=10)

Клас Square

Клас Square має бути підкласом Rectangle. Коли ви створюєте об’єкт Square, передається довжина однієї сторони. Метод __init__ має зберігати довжину сторони в атрибутах width та height з класу Rectangle.

Клас Square повинен мати доступ до методів класу Rectange, але також повинен містити метод set_side. Якщо екземпляр Square представлений у вигляді рядка, то це має виглядати так: Square(side=9)

Додатково, методи set_width та set_height у класі Square повинні встановити як ширину, так і висоту.

Приклад використання

rect = shape_calculator.Rectangle(10, 5)
print(rect.get_area())
rect.set_height(3)
print(rect.get_perimeter())
print(rect)
print(rect.get_picture())

sq = shape_calculator.Square(9)
print(sq.get_area())
sq.set_side(4)
print(sq.get_diagonal())
print(sq)
print(sq.get_picture())

rect.set_height(8)
rect.set_width(16)
print(rect.get_amount_inside(sq))

Цей код повинен повернути:

50
26
Rectangle(width=10, height=3)
**********
**********
**********

81
5.656854249492381
Square(side=4)
****
****
****
****

8

Модульні тести для цього проєкту знаходяться в test_module.py.

Розробка

Запишіть свій код у shape_calculator.py. Для розробки ви можете використати main.py, щоб протестувати свою функцію shape_calculator(). Натисніть кнопку «run» і main.py запуститься.

Тестування

Ми імпортували тести з test_module.py до main.py для вашої зручності. Тести запустяться автоматично, коли ви натиснете на кнопку «run».

Надсилання

Скопіюйте URL-адресу свого проєкту та відправте її до freeCodeCamp.

--hints--

Проєкт повинен створити класи Rectangle і Square та пройти всі тести.


--solutions--

/**
  Backend challenges don't need solutions,
  because they would need to be tested against a full working project.
  Please check our contributing guidelines to learn more.
*/