№6 — примеры решений
Один эталонный разбор.
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепаха выполнила следующую программу:
Повтори 6 [Вперёд 33 Направо 90 Вперёд 20 Направо 90]
Поднять хвост
Вперёд 3 Направо 90 Вперёд 9 Налево 90
Опустить хвост
Повтори 6 [Вперёд 24 Направо 90 Вперёд 25 Направо 90]
Определите, сколько точек с целочисленными координатами находится внутри пересечения фигур, ограниченных заданными алгоритмом линиями. Точки на границах этого пересечения учитывать не следует.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 230
Ответ:230
📚
Все задачи с разбором
19
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n, Назад n, Направо m, Налево m. Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 1 Налево 270 Вперёд 16 Направо 90]
Поднять хвост
Назад 4 Направо 90 Вперёд 10 Налево 90
Опустить хвост
Повтори 2 [Вперёд 17 Направо 90 Вперёд 7 Направо 90].
Определите площадь объединения фигур, ограниченных заданными алгоритмом линиями.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 129
Ответ:129
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 14 Налево 270 Назад 12 Направо 90]
Поднять хвост
Вперёд 9 Направо 90 Назад 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 13 Направо 90 Вперёд 6 Направо 90]
Определите, сколько точек с целочисленными координатами находятся внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 251
Ответ:251
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Налево m (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм: Повтори 8 [Вперёд 6 Направо 90 Вперёд 22 Направо 90] Поднять хвост Вперёд 5 Направо 90 Вперёд 5 Налево 90 Опустить хвост Повтори 8 [Вперёд 52 Направо 90 Вперёд 77 Направо 90]. Определите площадь пересечения фигур, ограниченных заданными алгоритмами линиями.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 187
Ответ:187
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 3 [Вперёд 27 Направо 90 Вперёд 12 Направо 90]
Поднять хвост
Вперёд 4 Направо 90 Вперёд 6 Налево 90
Опустить хвост
Повтори 4 [Вперёд 83 Направо 90 Вперёд 77 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченных заданным алгоритмом линиями, включая точки на границах этого объединения.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 6748
Ответ:6748
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 9 [Вперёд 27 Направо 90 Вперёд 30 Направо 90]
Поднять хвост
Вперёд 3 Направо 90 Вперёд 6 Налево 90
Опустить хвост
Повтори 9 [Вперёд 77 Направо 90 Вперёд 66 Направо 90]
Определите периметр области пересечения фигур, ограниченных заданным алгоритмом линиями.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 96
Ответ:96
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 3 [Вперёд 27 Направо 90 Вперёд 12 Направо 90]
Поднять хвост
Вперёд 4 Направо 90 Вперёд 6 Налево 90
Опустить хвост
Повтори 4 [Вперёд 83 Направо 90 Вперёд 77 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченных заданным алгоритмом линиями, включая точки на границах этого объединения.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 6748
Ответ:6748
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 28 Направо 90 Вперёд 18 Направо 90]
Поднять хвост
Вперёд 14 Направо 90 Вперёд 10 Налево 90
Опустить хвост
Повтори 2 [Вперёд 30 Направо 90 Вперёд 7 Направо 90]
Определите, сколько точек с целочисленными координатами находится внутри объединения фигур, ограниченного заданным алгоритмом линиями, включая точки на линиях.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 679
Ответ:679
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Направо 90 Повтори 7 [Направо 45 Вперёд 11 Направо 45].
Определите, сколько точек с целочисленными координатами будут находиться внутри области, которая ограничена линией, заданной алгоритмом. Точки на линии учитывать не следует.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 113
Ответ:113
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 3 Направо 90 Вперёд 20 Направо 90]
Поднять хвост
Назад 8 Направо 90 Вперёд 9 Налево 90
Опустить хвост
Повтори 2 [Вперёд 16 Направо 90 Вперёд 8 Направо 90]
Определите, сколько точек с целочисленными координатами находится внутри объединения фигур, ограниченного заданным алгоритмом линиями, включая точки на линиях.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 201
Ответ:201
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 20 Налево 270 Вперёд 12 Направо 90]
Поднять хвост
Вперёд 9 Направо 90 Вперёд 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 13 Направо 90 Вперёд 6 Направо 90]
Определите, сколько точек с целочисленными координатами находится внутри объединения фигур, ограниченного заданным алгоритмом линиями, включая точки на линиях.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 299
Ответ:299
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
повтори 5 [вперёд 40 вправо 90 вперёд 46 вправо 90]
поднять хвост
вперёд 19 вправо 90 вперёд 19 влево 90
опустить хвост
повтори 5 [вперёд 37 вправо 90 вперёд 19 вправо 90]
Найдите количество точек внутри объединения включая точки на линиях.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 2247
Ответ:2247
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм.
Повтори 5 [Вперёд 37 Направо 90 Вперёд 44 Направо 90]
Поднять хвост
Назад 18 Направо 90 Вперёд 29 Налево 90
Опустить хвост
Повтори 5 [Вперёд 31 Направо 90 Вперёд 35 Направо 90]
Определите, сколько точек с целочисленными координатами находятся внутри пересечения фигур, ограниченного заданным алгоритмом линиями, включая точки на линиях.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 224
Ответ:224
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 9 [Вперёд 22 Направо 90 Вперёд 6 Направо 90]
Поднять хвост
Вперёд 1 Направо 90 Вперёд 5 Налево 90
Опустить хвост
Повтори 9 [Вперёд 53 Направо 90 Вперёд 75 Направо 90]
Определите периметр области пересечения фигур, ограниченных заданными алгоритмом линиями.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 44
Ответ:44
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм.
Повтори 3 [Вперёд 39 Направо 90 Вперёд 48 Направо 90]
Поднять хвост
Вперёд 27 Направо 90 Вперёд 24 Налево 90
Опустить хвост
Повтори 3 [Вперёд 29 Направо 90 Назад 18 Направо 90]
Определите площадь объединения фигур, ограниченного заданными алгоритмом линиями.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 2178
Ответ:2178
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен.
При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепаха выполнила следующую программу:
Повтори 2 [Вперёд 3 Налево 90 Назад 10 Налево 90]
Поднять хвост
Назад 10 Направо 90 Вперёд 8 Налево 90
Опустить хвост
Повтори 2 [Вперёд 16 Направо 90 Вперёд 8 Направо 90].
Определите площадь объединения фигур, ограниченных заданными алгоритмом линиями.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 152
Ответ:152
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз (где k – целое число).
Черепахе был дан для исполнения следующий алгоритм:
Направо 315 Повтори 7 [Вперёд 12 Направо 45 Вперёд 6 Направо 135].
Определите, сколько точек с целочисленными координатами будут находиться внутри области, которая ограничена линией, заданной алгоритмом. Точки на линии учитывать не следует.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 40
Ответ:40
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Направо 7 Повтори 8 [Вперёд 95 Направо 135 Вперёд 83 Направо 45].
Определите площадь фигуры, полученной в результате выполнения алгоритма. В ответе укажите ближайшее к полученному результату целое число.
Решение
# Задача 6: Исполнитель Черепаха
import math
x, y = 0.0, 0.0
angle = 90.0 # направление вдоль оси Y (вверх)
# Программа из условия задачи (команды в цикле):
# ПОВТОРИ n РАЗ
# ВПЕРЁД d
# НАПРАВО/НАЛЕВО a
# КОНЕЦ
def forward(dist):
global x, y
rad = math.radians(angle)
x += dist * math.cos(rad)
y += dist * math.sin(rad)
def right(a):
global angle
angle -= a
def left(a):
global angle
angle += a
# Выполнить программу из условия задачи
# ...
# Вычислить периметр / площадь / другой результат
# print(int(math.sqrt(x**2 + y**2)))
# Ответ: 5576
Ответ:5576
Условие
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет след в виде линии. Команды НАПРАВО и НАЛЕВО поворачивают Черепаху на 90° вправо и влево соответственно.
Черепахе дана программа:
ВПЕРЁД 48
НАПРАВО
ВПЕРЁД 36
НАПРАВО
ВПЕРЁД 24
НАЛЕВО
ВПЕРЁД 18
НАПРАВО
ВПЕРЁД 12
НАЛЕВО
ВПЕРЁД 30
НАПРАВО
ВПЕРЁД 45
НАЛЕВО
ВПЕРЁД 21
Найдите длину нарисованной ломаной.
Решение
Трассируем (X, Y, направление):
Старт: (0,0), С
ВПЕРЁД 48 → (0,48), С
НАПРАВО → В
ВПЕРЁД 36 → (36,48), В
НАПРАВО → Ю
ВПЕРЁД 24 → (36,24), Ю
НАЛЕВО → В
ВПЕРЁД 18 → (54,24), В
НАПРАВО → Ю
ВПЕРЁД 12 → (54,12), Ю
НАЛЕВО → В
ВПЕРЁД 30 → (84,12), В
НАПРАВО → Ю
ВПЕРЁД 45 → (84,−33), Ю
НАЛЕВО → В
ВПЕРЁД 21 → (105,−33), В
Длина пути = 48+36+24+18+12+30+45+21 = 234.
Ответ: 234.
Ответ:234
Условие
Исполнитель Черепаха находится в начале координат, направление движения — вправо. Черепаха выполняет следующую программу:
ВПЕРЁД 50
НАПРАВО 90
ВПЕРЁД 40
НАПРАВО 90
ВПЕРЁД 20
Каждая команда ВПЕРЁД N перемещает Черепаху на N единиц в текущем направлении. Каждая команда НАПРАВО 90 поворачивает Черепаху на 90° по часовой стрелке.
Найдите расстояние от начального положения Черепахи до её конечного положения после выполнения программы. В ответе запишите только целое число.
Решение
Трассировка:
Старт: (0, 0), направление вправо (+x).
ВПЕРЁД 50 → (50, 0)
НАПРАВО 90 → направление вниз (−y)
ВПЕРЁД 40 → (50, −40)
НАПРАВО 90 → направление влево (−x)
ВПЕРЁД 20 → (30, −40)
import math
x, y = 30.0, -40.0 # конечное положение
dist = math.sqrt(x**2 + y**2)
print(int(dist)) # 50 (египетский треугольник 30-40-50)
Расстояние = √(30² + 40²) = √2500 =
50.
Ответ:50