/
Carton
/
python-course-tasks
Обзор
Документация
Войти
/
Carton
/
python-course-tasks
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
task_12_02_01/bep_analyzer.py
123 строки
5 KB
Yuri Petrov
+ перенос заданий в отдельный репозиторий
02 июл 2020, 02:05
02 июл 2020, 02:05
5312992
Код
Авторство
О чём код?
# Программирование на языке высокого уровня (Python). # https://www.yuripetrov.ru/edu/python # Задание task_12_02_01. # # Выполнил: Фамилия И.О. # Группа: !!! # E-mail: !!! import math import matplotlib import matplotlib.pyplot as plt class BepAnalyzer: """Класс BepAnalyzer выполняет: - поиск точки безубыточности; - построение графика безубыточности. Поля: - self._data: список словарей данных. Каждый словарь имеет ключи: - "bep_x": точка безубыточности (x); - "bep_y": точка безубыточности (y); - "fc": постоянные издержки; - "ic": себестоимость единицы продукции; - "price": цена единицы продукции. Методы: - self.find_bep(): определение точки безубыточности; - self.add_data(): добавление данных для анализа; - self.clear_data(): очистка данных для анализа; - self._make_plot(): формирование изображения; - self.show_plot(): вывод изображения. """ def __init__(self): """Инициализация класса. Действия: - инициализировать 'self._data'. """ raise NotImplementedError # Уберите raise и дополните код def __str__(self): """Вернуть строку - анализируемые данные. Формат: Анализируемые данные (2): 1. - bep_x: 600 - bep_y: 150000 - fc: 30000 - ic: 200 - price: 250 2. - bep_x: 38 - bep_y: 38000 - fc: 30000 - ic: 200 - price: 1000 """ raise NotImplementedError # Уберите raise и дополните код def find_bep(self, ic, fc, price): """Определить и вернуть значение точки безубыточности. Параметры: - ic (int или float, > 0): себестоимость единицы продукции; - fc (int или float, > 0): постоянные издержки; - price (int или float, > ic): цена единицы продукции. При несоответствии типов и/или значений возбудить AssertionError. Результат: - словарь вида: {'bep_x': 150, 'bep_y': 60000}, где: - 150: кол-во продукции (целое число); - 60000: доход при производстве 150 единиц продукции. """ raise NotImplementedError # Уберите raise и дополните код def add_data(self, ic, fc, price): """Добавить данные для анализа в 'self._data'. Параметры: - ic (int или float, > 0): себестоимость единицы продукции; - fc (int или float, > 0): постоянные издержки; - price (int или float, > ic): цена единицы продукции. При несоответствии типов и/или значений возбудить AssertionError. """ raise NotImplementedError # Уберите raise и дополните код def clear_data(self): """Очистить данные для анализа.""" raise NotImplementedError # Уберите raise и дополните код def _make_plot(self): """Генерирует изображение, не отображая его. Изображение должно включать несколько диаграмм по горизонтали, количество которых равно длине 'self._data'. Если 'self._data' не содержит данных, возбудить AssertionError. Длина оси OX для каждой диаграммы должна быть вдвое больше значения точки безубыточности. Результат: - fig: matplotlib.figure.Figure. """ raise NotImplementedError # Уберите raise и дополните код def show_plot(self): """Создать изображение и показать его на экране.""" self._make_plot() plt.show()