Разбор 6.PNG

Тип 6 №47407

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. Черепахе был дан для исполнения следующий алгоритм:

Повтори 4 [Вперёд 8 Направо 90]

Повтори 3 [Вперёд 12 Направо 120]

Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом: Повтори 4 [Вперёд 8 Направо 90]

и находиться вне области, ограниченной линией, заданной данным алгоритмом: Повтори 3 [Вперёд 12 Направо 120]. Точки на линии учитывать не следует.

Untitled

Комментарии к каждой строчке решения:

  1. import turtle as t - Импортируем модуль turtle и переименовываем его в t для удобства.
  2. t.tracer(0) - Отключаем анимацию для ускорения отрисовки картинки, зачем нам тратить время на экзамене.
  3. t.left(90) - Поворачиваем голову черепахи на 90 градусов влево, чтобы соответствовать условию: “её голова направлена вдоль положительного направления оси ординат”.
  4. l = 30 - Инициализируем переменную l для установки удобного нам мсштаба отрисовки.
  5. for _ in range(4): - В соответсвии с псевдокодом задачи запускаем цикл для рисования квадрата.
  6. t.forward(8*l) - Перемещение черепахи вперед на 8 шагов.
  7. t.right(90) - Поворот черепахи на 90 градусов вправо.
  8. t.color('green') - Установка цвета черепахи на зеленый, для удобства отрисовки второй фигуры.
  9. for _ in range(3): - Запускаем второй цикл для рисования равностороннего треугольника (вторая фигура*).
  10. t.forward(12 * l) - Перемещение черепахи вперед на 12 шагов.
  11. t.right(120) - Поворот черепахи на 120 градусов вправо.
  12. t.up() - Поднимем перо для перемещения без рисования.
  13. for x in range(-30, 30): - Во вложенном цикле перебираем переменные х и y для отрисовки точек по сетке.
  14. for y in range(-30, 30):
  15. t.goto(x * l, y * l) - Перемещение черепахи в заданные координаты.
  16. t.dot(2, 'red') - Рисование точки красным цветом с радиусом 2 (толщина пера).
  17. t.done() - Завершение работы черепахи необходимо, чтобы окно не закрывалось до нажатия пользователя.
import turtle as t
t.tracer(0)
t.left(90)
l = 30

for _ in range(4):
    t.forward(8*l)
    t.right(90)

t.color('green')
for _ in range(3):
    t.forward(12 * l)
    t.right(120)

t.up()
for x in range(-30, 30):
    for y in range(-30, 30):
        t.goto(x * l, y * l)
        t.dot(2, 'red')

t.done()

После успешного запуска нашей программы мы получаем вот такой рисунок и переносим его в paint для удобного масштабирования и счета точек:

Untitled

Untitled

Зачастую мы можем получить ошибочный результат из-за подобных спорных точек, предлагается сильно увеличить масштаб отрисовки (переменную l) и присмотреться к этой точке снова (рисунок 2).