Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 2 команды: Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке.
Запись Повтори k [Команда 1 Команда 2 … Команда S] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Направо 270
Повтори 2 [Вперёд 7 Направо 120]
Направо 120
Повтори 2 [Направо 120 Вперёд 5 Направо 240]
Направо 240
Повтори 2 [Вперёд 17 Направо 120]
Определите площадь фигуры, нарисованной при помощи алгоритма. В ответе укажите целую часть полученного числа.
Приведём решение на языке Python.
from turtle import *
k = 5; home(); speed(1)
rt(270)
# движение вверх на 7 клеток и разворот на 120 градусов (получается угол в 60)
# далее опять 7 клеток уже в другом направлении
[(fd(7*k), rt(120)) for _ in range(2)]
# тройной оборот в 120 градусов даст 360 - холостой прокрут
# движение продолжится в том же направлении 2 раза по 5
rt(120)
[(rt(120), fd(5*k), rt(240)) for _ in range(2)]
rt(240)
# по звершению получаем сторону 7 + 5 + 5 (и опять угол в 60 градусов)
# за один цикл получаем ещё одну сторону в 17 (снова угол 60 градусов)
# за второй получаем готовую фигуру - равнобедренный треугольник
# последний оборот в 120 градусов холостой
[(fd(17*k), rt(120)) for _ in range(2)]
# По формуле площади равнобедренного треугольника (со сторонами 17)
# Результат нужно округлять в меньшую сторону
import math as m
print('Ответ:', m.floor(17**2 * 3**0.5/4))
Ответ: 125.
Приведём программу Сергея Донец на PascalABC.NET:
uses turtle;begin down;
Turn(270);loop 2 do begin Forw(7);Turn(120);end;
Turn(120);loop 2 do begin Turn(120);Forw(5);Turn(240);end;
Turn(240);loop 2 do begin Forw(17);Turn(120);end;end.
{S=a*h/2=(10+7)*14.72243/2=125.14 целая часть 125}

