Упражнения

В задачах этого листка на проверку необходимо сдать только тело функции. Внутри функции не должно быть вызова turtle.mainloop(). Можно (и рекомендуется) использовать вспомогательные функции.

Также в вашем решении не должно быть строки типа import turtle, а также вызова метода speed черепашки.

A: Ряд квадратов

Напишите функцию draw_squares(n, size, dist), которая рисует ряд из n квадратов со стороной size и расстоянием между квадратами dist

Вызов функции Результат работы
draw_squares(4, 50, 25)

B: Вложенные квадраты

Напишите функцию draw_squares(n, size, dist), которая рисует последовательность из n квадратов с общим центром. Самый маленький квадрат имеет сторону size, расстояние между сторонами двух соседних квадратов равно dist.

Вызов функции Результат работы
draw_squares(6, 50, 10)

C: Прямоугольная сетка

Напишите функцию draw_grid(h, w, size), которая рисует прямоугольную сетку из h квадратов по вертикали и w квадратов по горизонтали, сторона квадрата равна size.

Вызов функции Результат работы
draw_grid(3, 5, 50)

D: Квадраты с поворотом

Напишите функцию draw_squares(n, size), которая рисует последовательность из n квадратов с общим центром, углы каждого вложенного квадрата находятся посередине сторон внешнего квадрата. Самый большой квадрат имеет сторону size, общее число квадратов равно n.

Вызов функции Результат работы
draw_squares(5, 200)

E: Заштрихованный квадрат

Напишите функцию draw_shaded_square(n, size), которая рисует квадрат со стороной size, заштрихованный n наклонными линиями под углом 45°, на равном расстоянии друг от друга (и от противоположных углов квадрата), \(n\ge 1\).

Вызов функции Результат работы
draw_shaded_square(6, 200)
draw_shaded_square(7, 200)

F: Кирпичная стена

Напишите функцию draw_wall(h, w, size), которая рисует “кирпичную стенку” из h квадратов по вертикали (\(h\ge 1\)) и w квадратов по горизонтали (\(w\ge2\)), сторона квадрата равна size. Пары соседних квадратов по горизонтали объединены в кирпич, крайние клетки в горизонтальном ряду могут быть отдельными квадратами (“половина кирпича”). В левом верхнем углу находится цельный кирпич, каждый следующий горизонтальный ряд сдвинут относительно предыдущего.

Вызов функции Результат работы
draw_wall(4, 6, 25)
draw_wall(5, 7, 25)

G: Спираль

Напишите функцию draw_spiral(n, size), которая рисует квадрат со стороной size, разделённый на меньшие квадраты. Между некоторыми квадратами необходимо провести линии так, чтобы из каждого угла большого квадрата образовалась дорожка из меньших квадратов, закручивающаяся к центру квадрата по часовой стрелке. Дорожка делает n поворотов, \(n\ge 1\).

Вызов функции Результат работы
draw_spiral(1, 200)
draw_spiral(2, 200)
draw_spiral(3, 200)

H: Заштрихованный прямоугольник

Напишите функцию draw_shaded_rectangle(n, h, w), которая рисует прямоугольник высоты h пикселей и ширины w пикселей, заштрихованный n наклонными линиями под углом 45°, на равном расстоянии друг от друга (и от противоположных углов прямоугольника), \(n\ge 1\).

Вызов функции Результат работы
draw_shaded_rectangle(3, 100, 200)
draw_shaded_rectangle(6, 100, 200)
draw_shaded_rectangle(4, 100, 75)