Python

Программирование на Питоне

Основное назначение псевдографики — графическое оформление программ с текстовым интерфейсом пользователя (в том числе и так называемых консольных) — отображение в них окон, меню, кнопок и прочих элементов интерфейса, создания рамок и таблиц. Первоначальная цель применения — изображение рамок и таблиц на текстовых терминалах. В задании Вам необходимо нарисовать график функции и потренироваться с рисованием символами простого интерфейса вывода для графиков функции.
Как-то так, в общем, рисуется функция, положенная набок:
 from itertools import accumulate, repeat

def drawSymbolPlot(func, bottomEdge, topEdge, stringCount):
step = (topEdge - bottomEdge) / (stringCount - 1)
values = (func(x + bottomEdge - step) for x in accumulate(repeat(step, stringCount)))
offsets = [round(v) for v in values]
bias = min(offsets)
return (' ' * (ofs - bias) + '*' for ofs in offsets)
Поскольку мы заранее не знаем экстремумов функции, приходится все значения сложить в список для вычисления точки отсчёта, и это - единственное, зачем он нужен. А так бы обошлись итераторами и одним пробегом.
Примеры использования. Кубическая функция:
 print(*drawSymbolPlot(lambda x: x * x * x, -3, 3, 21), sep = '\n') 
Вывод:
 * 
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Синусоида (масштаб 10:1):
 from math import sin
print(*drawSymbolPlot(lambda x: sin(x) * 10, -3.14159, 3.14159, 31), sep = '\n')
Вывод:
 ⠀         *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Абсолютная величина:
 print(*drawSymbolPlot(abs, -30, 30, 31), sep = '\n') 
Вывод:
 ⠀                             *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Фазылов Энвер
Фазылов Энвер
87 571
Лучший ответ