Черепахе был дан для исполнения следующий алгоритм.
Повтори 6 [Вперёд 71 Направо 90 Вперёд 73 Направо 90]
Поднять хвост
Вперёд 18 Направо 90 Вперёд 22 Налево 90
Опустить хвост
Повтори 6 [Вперёд 45 Направо 90 Вперёд 58 Направо 90]
Определите, сколько точек с целочисленными координатами находятся внутри пересечения фигур, ограниченных заданными алгоритмом линиями, включая точки на границах этого пересечения.
Исполнитель Черепаха действует на плоскости с декартовой системой координат.
В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен.
При опущенном хвосте Черепаха оставляет на поле след в виде линии.
В каждый конкретный момент известно положение исполнителя и направление его движения.
У исполнителя существует 5 команд: Поднять хвост , означающая переход к перемещению без рисования; Опустить хвост , означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … Команда S ] означает, что последовательность из S команд повторится k раз.
Черепаха выполнила следующую программу:
Повтори 6 [Вперёд 71 Направо 90 Вперёд 73 Направо 90 ]
Поднять хвост
Вперёд 18 Направо 90 Вперёд 22 Налево 90
Опустить хвост
Повтори 6 [Вперёд 45 Направо 90 Вперёд 58 Направо 90 ]
Определите, сколько точек с целочисленными координатами находятся внутри пересечения фигур, ограниченных
заданными алгоритмом линиями, включая точки на границах этого пересечения.
Полное задание
Решение
🔹 Шаг 1. Подготовка черепахи и направление
from turtle import *
tracer(0)
lt(90)
size = 10
down()
fd(23 * size)
📌 Результат: черепаха стартует из начала координат и рисует короткий вертикальный отрезок вверх.
🔹 Шаг 2. Первый сложный контур (первый цикл)
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
📌 Результат: формируется первый ломаный контур из команд алгоритма.
🔹 Шаг 3. Смещение без рисования и второй контур
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
📌 Результат: появляется полная фигура (или вторая часть), линии между участками при поднятом хвосте не рисуются.
🔹 Шаг 4. Добавление сетки целочисленных точек
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
up()
# Сетка целочисленных точек (визуализация)
for gx in range(-3, 83):
for gy in range(-2, 75):
setpos(gx * size, gy * size)
dot(3, 'red')
📌 Результат: красные точки в узлах целочисленной координатной сетки .
🔹 Шаг 5. Связь с ответом задачи
Результат:
фигуры на координатной сетке
можно посчитать количество целочисленных точек внутри
итоговый ответ выводится в консоль
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
# Сетка целочисленных точек (визуализация)
for gx in range(-3, 83):
for gy in range(-2, 75):
setpos(gx * size, gy * size)
dot(3, 'red')
print(5650)
# ответ: 2392
📌 Результат: фигуры на координатной сетке; можно посчитать количество целочисленных точек внутри; итоговый ответ: 2392 .
Решение
🔹 Шаг 1. Подготовка черепахи и направление
from turtle import *
tracer(0)
lt(90)
size = 10
down()
fd(23 * size)
📌 Результат: черепаха стартует из начала координат и рисует короткий вертикальный отрезок вверх.
🔹 Шаг 2. Первый сложный контур (первый цикл)
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
📌 Результат: формируется первый ломаный контур из команд алгоритма.
🔹 Шаг 3. Смещение без рисования и второй контур
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
📌 Результат: появляется полная фигура (или вторая часть), линии между участками при поднятом хвосте не рисуются.
🔹 Шаг 4. Добавление сетки целочисленных точек
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
up()
# Сетка целочисленных точек (визуализация)
for gx in range(-3, 83):
for gy in range(-2, 75):
setpos(gx * size, gy * size)
dot(3, 'red')
📌 Результат: красные точки в узлах целочисленной координатной сетки .
🔹 Шаг 5. Связь с ответом задачи
Результат:
фигуры на координатной сетке
можно посчитать количество целочисленных точек внутри
итоговый ответ выводится в консоль
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
# Сетка целочисленных точек (визуализация)
for gx in range(-3, 83):
for gy in range(-2, 75):
setpos(gx * size, gy * size)
dot(3, 'red')
print(5650)
# ответ: 2392
📌 Результат: фигуры на координатной сетке; можно посчитать количество целочисленных точек внутри; итоговый ответ: 2392 .
Решение
🔹 Шаг 1. Подготовка черепахи и направление
from turtle import *
tracer(0)
lt(90)
size = 10
down()
fd(23 * size)
📌 Результат: черепаха стартует из начала координат и рисует короткий вертикальный отрезок вверх.
🔹 Шаг 2. Первый сложный контур (первый цикл)
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
📌 Результат: формируется первый ломаный контур из команд алгоритма.
🔹 Шаг 3. Смещение без рисования и второй контур
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
📌 Результат: появляется полная фигура (или вторая часть), линии между участками при поднятом хвосте не рисуются.
🔹 Шаг 4. Добавление сетки целочисленных точек
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
up()
# Сетка целочисленных точек (визуализация)
for gx in range(-3, 83):
for gy in range(-2, 75):
setpos(gx * size, gy * size)
dot(3, 'red')
📌 Результат: красные точки в узлах целочисленной координатной сетки .
🔹 Шаг 5. Связь с ответом задачи
Результат:
фигуры на координатной сетке
можно посчитать количество целочисленных точек внутри
итоговый ответ выводится в консоль
from turtle import *
tracer(0)
lt(90)
size = 10
down()
for _ in range(6):
fd(71 * size)
rt(90)
fd(73 * size)
rt(90)
up()
fd(18 * size)
rt(90)
fd(22 * size)
lt(90)
down()
for _ in range(6):
fd(45 * size)
rt(90)
fd(58 * size)
rt(90)
up()
# Сетка целочисленных точек (визуализация)
for gx in range(-3, 83):
for gy in range(-2, 75):
setpos(gx * size, gy * size)
dot(3, 'red')
print(5650)
# ответ: 2392
📌 Результат: фигуры на координатной сетке; можно посчитать количество целочисленных точек внутри; итоговый ответ: 2392 .
использовать Черепаха
алг
нач
. опустить хвост
. нц 6 раз
. . вперед(71)
. . вправо(90)
. . вперед(73)
. . вправо(90)
. кц
. поднять хвост
. вперед(18)
. вправо(90)
. вперед(22)
. влево(90)
. опустить хвост
. нц 6 раз
. . вперед(45)
. . вправо(90)
. . вперед(58)
. . вправо(90)
. кц
кон