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