Домашнее задание. Площадь региона
7 сентября 2017
Вычислить площадь региона, заданного непересекающимися геометрическими фигурами. Каждая фигура должна быть реализована в виде класса.
Задача
Нужно реализовать классы геометрических фигур, реализующие протокол вычисления площади. Класс, реализующий протокл вычисления площади, должен содержать следующие методы:
area()
— возвращает вещественное число (float), равное площади фигуры.
Кроме того, все нужные параметры фигура получает при создании, как параметры конструктора класса.
Фигуры, которые нужно реализовать:
- Круг (класс
Circle
). Параметр круга — радиус. - Прямоугольник (класс
Rect
). Параметры прямоугольника — ширина и высота. - Треугольник (класс
Triangle
). Параметры треугольника — длины трёх его сторон.
Исходные данные
Список фигур, из которых состоит регион, скрипт должен прочитать из текстового файла figures.txt
. Скачайте его по ссылке: https://anhel.in/files/figures.txt.
Каждая строка файла описывает одну фигуру и имеет следующий формат:
название-класса-фигуры,параметр1,параметр2
Элементы строки разделены запятыми. Количество параметров в строке зависит от типа фигуры (у круга один, у прямоугольника два, у треугольника три).
Название класса фигуры может быть:
Circle
— кругRect
— прямоугольникTriangle
— треугольник
Скрипт должен прочитать этот файл, создать нужные фигуры, собрать их в виде списка и просуммировать их площади.
Результат выводится на экран.
Пример класса Circle
import math
class Circle:
def __init__(self, r):
self.r = r
def area(self):
return math.pi * (self.r ** 2)
Остальные классы фигур реализуйте аналогично.
Реализация
- Формулы вычисления площади соответствующих фигур посмотрите в интернете.
- Площадь треугольника по трём известным сторонам можно вычислить по формуле Герона
- Квадратный корень из числа считает функция
math.sqrt(x)
.