Сентябрь 2017

Этот курс закончился

Cписок курсов

Домашнее задание. Площадь региона

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).