Присоединиться

Информатика·Определение результатов работы простейших алгоритмов·11 класс

Направо 180 Вперёд 5 Направо 90 Вперёд 50 Направо 90 Вперёд 5 Повтори 5

Условие

Исполнитель Цапля действует на плоскости с декартовой системой координат. В начальный момент Цапля находится в начале координат, её клюв направлен вдоль положительного направления оси ординат, клюв опущен. При опущенном клюве Цапля оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n — целое число), вызывающая передвижение Цапли на n единиц в том направлении, куда указывает её клюв; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Дуга r, a, b, α (где r, a, b, α — целые числа), вызывающая передвижение Цапли из текущей точки с координатами (x, y) по дуге окружности с центром в точке с координатами (x+a,y+b)( x + a, y + b ) и радиусом r, градусная мера дуги равна α, движение по дуге идёт по часовой стрелке.Запись Повтори k [Команда 1 Команда 2 ... Команда S] означает, что последовательность из S команд повторится k раз. Цапле был дан для исполнения следующий алгоритм: Направо 180 Вперёд 5 Направо 90 Вперёд 50 Направо 90 Вперёд 5 Повтори 5 [Дуга 5, 5, 0, 180].Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.

Рисунок к задаче

Ответ

391

Решение по шагам

  1. Как рассуждать

    Решение. [рисунок] Приведём решение на языке Python.import turtlet=turtle.Turtle()t.reset()t.seth(90)t.width(2)t.speed(20)k = 10 #коэффициент для увеличения масштабаt.right(180)t.forward(5k)t.right(90)t.forward(50k)t.right(90)t.forward(5k)for i in range(5): t.seth(90) t.circle(-5k,180)t.penup() for x in range(0,-14,-1): for y in range(-5,8): t.goto(xk , yk ) t.dot(5)turtle.mainloop() Посчитаем количество точек в одном секторе (75) и умножим их на количество секторов (5), плюс количество точек на границе секторов (по четыре на границу). Итоговый ответ 75 · 5 + 4 · 4 =

Осталось ещё 1 шаг — откроются после входа:

  • Шаг 2
Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Определение результатов работы простейших алгоритмов»