Задание 6. Циклические алгоритмы для исполнителя

Вариант 1. Исполнитель Черепаха

Решение в Python

Подключение модуля: from turtle import *

Команды:

pendown(), pd(), down() – Опустить хвост
penup(), pu(), down() – Поднять хвост
forward(x), fd(x) – Вперед на х шагов
backward(x), bk(x), back(x) – Назад на х шагов
right(x), rt(x) – Поворот направо на х градусов
left(x), lt(x) – Поворот налево на х градусов
goto(x, y), setpos(x, y), setposition(x,y) – Перемещение исполнителя в точку с координатами (х, у)
dot(d, ‘color’) – Рисование точки размером d и цветом color

Увеличение масштаба и нанесение сетки

Чтобы визуально подсчитать точки необходимо увеличить масштаб. Для этого необходимо все значения перемещений домножить на одно и тоже число, например, 10.

 Чтобы не ожидать выполнения анимации в начале алгоритма указываем команду tracer(0), которая выключает анимацию движения исполнителя. И в конце указываем команду update(), чтобы поле обновило состояние в соответствии с выполненными командами.

Если получившийся рисунок не входит в область окна, можно использовать команду screensize(x, y), где в качестве x и y указать достаточно большие числа, чтобы поместить весь рисунок.

Пример:

Исполнитель Черепаха действует на плоскости с декартовой системой координат, в которой единица длины по каждой из осей соответствует одному сантиметру. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n целое число), вызывающая перемещение в противоположном голове направлении; Направо m (где m целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Налево m (где — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.

Запись Повтори k[Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится kраз.

Черепахе был дан для исполнения следующий алгоритм:

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

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

Определите, сколько различных точек с целочисленными координатами будет находиться на линиях, полученных при выполнении данной программы.

Решение:

Результат выполнения программы:

Осталось посчитать количество точек. Ответ: 50