Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x+a, y+b). Если числа a, b положительные, то значение соответствующей координаты увеличивается, если отрицательные — уменьшается.
Например, если Чертёжник находится в точке с координатами (4, 2), то команда Сместиться на (2, -3) переместит Чертёжника в точку (6, -1).
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Чертёжнику был дан для исполнения следующий алгоритм:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Повтори 10 [ сместиться на (0, 2) сместиться на (2, 0) сместиться на (0, 10) сместиться на (-2, 0) сместиться на (0, 2) сместиться на (6, 0) сместиться на (0, -2) сместиться на (-2, 0) сместиться на (0, -10) сместиться на (2, 0) сместиться на (0, -2) сместиться на (-6, 0) ] |
Перед началом алгоритма Чертёжник находился в точке с координатами (0, 0).
Определите, сколько точек с целочисленными координатами будут находиться
внутри области, ограниченной линией, заданной данным алгоритмом. Точки
на линии следует учитывать.
Ответ:
ЕГЭ 2024 по ИНФОРМАТИКЕ №5 От PRO100 ЕГЭ – задание №6
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
from turtle import * tracer(0) left(90) k = 30 screensize(1000,1000) pu() x=0 y=0 goto(x, y) pd() for i in range(10): x+=0 * k y+=2 * k goto(x, y) x+=2 * k y+=0 * k goto(x, y) x += 0 * k y += 10 * k goto(x, y) x += -2 * k y += 0 * k goto(x, y) x += 0 * k y += 2 * k goto(x, y) x += 6 * k y += 0 * k goto(x, y) x += 0 * k y += -2 * k goto(x, y) x += -2 * k y += 0 * k goto(x, y) x += 0 * k y += -10 * k goto(x, y) x += 2 * k y += 0 * k goto(x, y) x += 0 * k y += -2 * k goto(x, y) x += -6 * k y += 0 * k goto(x, y) pu() for x in range(-20, 20): for y in range(-20, 20): goto(x * k, y * k) dot(5, "red") mainloop() |

Ответ: 69