Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды:
Запись
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 9 Направо 90 Вперёд 15 Направо 90]
Поднять хвост
Вперёд 12 Направо 90
Опустить хвост
Повтори 2 [Вперёд 6 Направо 90 Вперёд 12 Направо 90].
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченных заданными алгоритмом линиями, не включая точки на границах этого объединения.
Приведём решение на языке КуМир.
Выберите масштаб сетки равным 1, запустите программу для исполнителя Черепаха.
использовать Черепаха
алг
нач
опустить хвост
нц 2 раз
вперед (9)
вправо (90)
вперед (15)
вправо (90)
кц
поднять хвост
вперед (12)
вправо (90)
опустить хвост
нц 2 раз
вперед (6)
вправо (90)
вперед (12)
вправо (90)
кц
кон
После выполнения программы считаем количество точек с целочисленными координатами внутри объединения фигур, ограниченных заданными алгоритмом линиями, не включая точки на линиях,
Ответ: 127.
Приведём решение Ильи Андрианова на языке Python.
import turtle as t
t.speed(100)
t.left(90)
l = 30
for i in range(2):
t.forward(9 * l)
t.right(90)
t.forward(15 * l)
t.right(90)
t.up()
t.forward(12 * l)
t.right(90)
t.down()
t.color('green')
for i in range(2):
t.forward(6 * l)
t.right(90)
t.forward(12 * l)
t.right(90)
t.up()
for x in range(0, 16):
for y in range(0, 16):
t.goto(x * l, y * l)
t.dot(4, 'red')
t.done()
После выполнения программы считаем количество точек с целочисленными координатами внутри объединения фигур, ограниченных заданными алгоритмом линиями, не включая точки на линиях,
Приведём построение рисунка Виктории Зиберовой на языке Python.
from turtle import *
lt(90)
size=30
screensize(2000,2000)
tracer(0)
down()
for i in range(2):
fd(9*size)
rt(90)
fd(15*size)
rt(90)
up()
fd(12*size)
rt(90)
down()
for i in range(2):
fd(6*size)
rt(90)
fd(12*size)
rt(90)
up()
for x in range(-20,20):
for y in range(-20,20):
setpos(x*size,y*size)
dot(4,'red')
done()
Приведём построение рисунка Сергея Донец на языке PascalABC.NET.
uses turtle;
begin
down;//Опустить хвост
loop 2 do begin
Forw(9); TurnRight(90);
Forw(15); TurnRight(90);
end;
up;//Поднять хвост
Forw(12); TurnRight(90);
down;//Опустить хвост
loop 2 do begin
Forw(6); TurnRight(90);
Forw(12); TurnRight(90);
end;
end.

