Top.Mail.Ru
Ответы
Аватар пользователя
1мес
Изменено

Черепаха Python

Подскажите пожалуйста, где у меня ошибка в коде, должно получиться объединение фигур

12345678910111213141516171819202122232425
from turtle import *
k = 12
tracer(0)
for i in range(3):
  forward(7*k)
  right(90)
  forward(12*k)
  right(90)
penup()
forward(4*k)
right(90)
forward(6*k)
left(90)
pendown()
for i in range(4):
  forward(83*k)
  right(90)
  forward(77*k)
  right(90)
penup()
for x in range(-20, 20):
  for y in range(-20, 20):
    goto(x*k, y*k)
    dot(3)
done()

По дате
По рейтингу
Аватар пользователя
Ученик
1мес
1234567891011121314151617181920
from turtle import *
k = 1
tracer(1)
for i in range(3):
  forward(7*k)
  right(90)
  forward(12*k)
  right(90)
penup()
forward(4*k)
right(90)
forward(6*k)
left(90)
pendown()
for i in range(4):
  forward(83*k)
  right(90)
  forward(77*k)
  left(90)
done()

Это буквально то что описано в условии задачи

Аватар пользователя
Ученик
1мес

В вашем коде есть три ключевых момента, которые стоит исправить:

1. Логика отрисовки (бесконечный холст): Во втором цикле вы используете значения forward(83*k) и 77*k. Это очень большие расстояния для масштаба k=12 (около 1000 пикселей). Фигура просто уходит далеко за пределы видимости и сетки точек.

2. Сетка точек: Цикл для точек покрывает диапазон от -20 до 20. Этого мало, чтобы увидеть вторую фигуру, которая начинается после смещения и имеет такие гигантские размеры.

3. Ориентация черепахи: В задачах ЕГЭ (если код для них) важно помнить, что в Turtle черепаха изначально смотрит вправо (на восток), а в задачах часто подразумевается направление вверх (на север).

Как исправить:

Если вы решаете задачу из ЕГЭ (например, №6), проверьте длины сторон во втором цикле. Скорее всего, там должны быть числа вроде 8 и 7, а не 83 и 77.

Также, чтобы сетка соответствовала рисунку, добавьте в начало:

left(90) # Направить вверх

Аватар пользователя
Ученик
1мес

спасибо большое, я попробую

Аватар пользователя
Ученик
1мес

ничего не помогло, k заменил на 3, диапазон x и y на -100 до 100, в условии задания черепаха уже находится в начале координат ординат

Аватар пользователя
Ученик
1мес

вот задание

Аватар пользователя
Ученик
1мес

Где ошибка

Посмотри на строки 9-14:

python

123456
penup()
forward(4*k)
right(90)          # <- тут ты повернул черепаху
forward(6*k)
left(90)           # <- вернул обратно
pendown()

После этого ты начинаешь рисовать вторую фигуру, но черепаха уже смотрит не туда. Нужно сделать так, чтобы вторая фигура начиналась из нужной точки и под нужным углом.

✅ Правильный код

Вот исправленная версия:

python

123456789101112131415161718192021222324252627282930313233
from turtle import *
k = 12
tracer(0)

# Первая фигура (3 цикла)
for i in range(3):
    forward(7 * k)
    right(90)
    forward(12 * k)
    right(90)

penup()
forward(4 * k)
right(90)
forward(6 * k)
left(90)          # возвращаем исходное направление
pendown()

# Вторая фигура (4 цикла)
for i in range(4):
    forward(83 * k)
    right(90)
    forward(77 * k)
    right(90)

penup()
# Рисуем точки для проверки
for x in range(-20, 20):
    for y in range(-20, 20):
        goto(x * k, y * k)
        dot(3)

done()



Видео по теме