Задание №6 ЕГЭ Информатика с ответом и решением
Ответ: 36
Условие
Исполнитель Черепаха передвигается по плоскости и оставляет след в виде линии. Черепаха может выполнять две команды: Вперёд n (n — число) и Направо m (m — число). По команде Вперёд n Черепаха перемещается вперёд на n единиц. По команде Направо m Черепаха поворачивается на месте на m градусов по часовой стрелке, при этом соответственно меняется направление дальнейшего движения.
Запись Повтори k [Команда1 Команда2 … Команда S] означает, что заданная последовательность из S команд повторится k раз.
Черепаха выполнила следующую программу:
Повтори 11 [Вперёд 36 Направо 72].
Определите расстояние между положениями Черепахи в начале и в конце выполнения этой программы. В ответе запишите целое число, ближайшее к найденному расстоянию.
Подсказки — как подойти к решению
- Найди, за сколько повторов черепаха делает полный оборот: сумма поворотов за цикл должна дать триста шестьдесят градусов. Тогда общее число повторов распадётся на полные круги и короткий остаток.
- После полного круга направление движения восстанавливается, поэтому остаток от деления числа повторов на длину круга показывает, сколько шагов сделано от старта по прямой. Расстояние считай от начальной точки, а не длину ломаной.
Решение
Можно заметить, что исполнитель Черепаха через 5 циклов вернётся в исходную точку, следовательно, за 10 циклов будет пройдено 2 круга. За 11 цикл исполнитель Черепаха переместиться вперед на 36 единиц.
Приведём решение на языке Python:
import turtle as t # Подключим модуль черепашка
x1 = t.xcor()#Получить x координату черепашки
y1 = t.ycor()#Получить y координату черепашки
t.speed(10)
for i in range(11): # пропишем алгоритм построения фигуры по условию
t.forward(36)
t.right(72)
x2 = t.xcor()
y2 = t.ycor()
print(round(((x2 - x1)**2 + (y2 - y1)**2))**0.5)
После выполнения программы значение, выведенное на экран, будет равно 36.
Ответ: 36.
Приведём решение Юрия Красильникова на языке Python:
from math import sin, cos, radians
def vpered(n):
global x,y,a
ar=radians(a)
x += n*cos(ar)
y += n*sin(ar)
def napravo(n):
global a
a -= n
x=0
y=0
a=0
for i in range(11):
vpered(36)
napravo(72)
print(round((x**2+y**2)**0.5,3))
Приведём программу Сергея Донец на PascalABC.NET:
uses turtle;
begin
down;
loop 11 do
begin
Forw(36); TurnRight(72);
end;
end.
Сделав все шаги получим фигуру - пятиугольник. т. е. каждые 5 шагов Черепаха возвращается в исходную точку.
определим положение Черепахи в конце пути: находим остаток 11 mod 5 = 1. т. е. Черепаха из начальной точки сделает 1 шаг [Вперёд 36 Направо 72]
Ответ: 36
Типичные ошибки
- Ты решил, что черепаха замкнула фигуру и вернулась в стартовую точку. Полных кругов меньше, чем повторов, поэтому остаётся лишний шаг — пересчитай остаток от деления и учти его.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №6 по информатике