Войти Создать аккаунт

Декораторы · 14 из 17

Сглаживание краёв

Для экрана в зале ожидания отделения нарисовали заставку — зонную пластинку, концентрические кольца, которые к краю становятся всё тоньше. На экране она вышла странной: у краёв вместо тонких колец поплыли чужие узоры, «муар», а гладкие дуги стали лесенками. Беда в том, что каждую точку экрана красят по одному значению в её центре. Зинаида Петровна вспомнила старый приём: спросить картинку в нескольких местах внутри точки и взять среднее. Рисующих функций у отделения много, и переписывать каждую не хочется — нужен декоратор.

Что сделать

Напишите декоратор с параметрами: функция точки f(x, y) должна возвращать среднее из n × n замеров внутри клетки.

Что приходит

  • shag — размер клетки экрана по каждой оси

  • n — сколько замеров по каждой оси

Что вернуть

Декоратор: обёрнутая функция (x, y) отдаёт среднее из n·n значений f и сохраняет имя f.

Допишите функцию sgladit в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой

Пример

Функция kray даёт 1 правее нуля и 0 левее. С @sgladit(1, 2) точка (0, 5) спрашивает её в x = −0,25 и x = +0,25 (и в двух y): два нуля и две единицы — kray(0, 5) даёт 0.5, ровно половину.

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.