Нарисуй 4 вложенных квадрата (каждый следующий меньше на 10 шагов)
Ответ нейросети
26 февраля 2026 18:36
Задача понятна: нарисовать 4 вложенных квадрата, каждый следующий меньше предыдущего на 10 шагов по стороне. Мы сделаем это с помощью Python и модуля turtle, чтобы наглядно увидеть вложенность и понять идею.
Как понять задачу
- Пусть внешний квадрат имеет сторону L0 = 100 единиц.
- Каждый следующий квадрат меньше на 10 единиц: L1 = 90, L2 = 80, L3 = 70.
- Все квадраты должны быть центрированы в одном месте, чтобы получились вложенные (они будут друг внутри друга, с одним центром).
Пошаговый план
- Задать начальную сторону и шаг уменьшения: initial_size = 100, decrement = 10, количество квадратов = 4.
- Для каждого i из 0..3 вычислить size = initial_size - i * decrement.
- Чтобы квадраты были вложенными и центрированными, смещаемся к верхнему левому углу текущего квадрата: x = center_x - size/2, y = center_y + size/2.
- Рисуем квадрат со стороной size: 4 стороны по 90 градусов.
- Повторяем для следующего меньшего квадрата.
Код на Python с использованием turtle
import turtle
def draw_square(size): for _ in range(4): turtle.forward(size) turtle.right(90)
def nested_squares(n=4, initial_size=100, decrement=10): turtle.speed(0) # максимальная скорость отрисовки center_x, center_y = 0, 0 turtle.penup() # начинаем с центра и двигаемся к верхнему левому углу каждого квадрата for i in range(n): size = initial_size - i * decrement x = center_x - size / 2 y = center_y + size / 2 turtle.goto(x, y) turtle.pendown() draw_square(size) turtle.penup()
nested_squares(4, 100, 10) turtle.done()
Пояснения к коду
- draw_square(size): рисует квадрат со сторонами size, начиная с текущей позиции как верхнего левого угла.
- nested_squares: цикл по 4 квадратам. Для каждого квадрата рассчитывает актуальный размер, перемещает черепаху к верхнему левому углу данного квадрата и строит квадрат. Таким образом, все квадраты имеют один общий центр и разные размеры, создавая вложенную структуру.
- centers и смещение по x и y обеспечивают центрирование квадратов.
Альтернатива: псевдокод (общий алгоритм без конкретного языка)
- initial_size = 100
- For i = 0 to 3:
- size = initial_size - i * 10
- move to ( -size/2, +size/2 ) // верхний левый угол квадрата
- draw квадрат со стороной size
Если хочешь, могу адаптировать решение под другой язык (например, JavaScript с Canvas) или показать вариант с цветами, чтобы различать квадраты (например, прозрачные заливки или разноцветные контуры).
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



