Тема 6. Анализ простейших программ
6.02 Определение результатов работы простейших алгоритмов управления исполнителями
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела анализ простейших программ
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#45285

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

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

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

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

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

Показать ответ и решение

Решение через Кумир

Открываем «Кумир» и переписываем алгоритм для исполнителя Черепаха.

использовать Черепаха
алг
нач
  опустить хвост
    нц 4 раз
      вперед(4)
      вправо(90)
      вперед(8)
      вправо(90)
    кц
кон

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

PIC

Получаем ответ 21.

 

Решение через модуль turtle в Python

Переписываем алгоритм для исполнителя Черепаха по правилам модуля turtle и рисуем сетку.

from turtle import *

color(’black’, ’grey’)
tracer(0)

m = 30
begin_fill()
left(90)
for i in range(2):
    forward(4 * m)
    right(90)
    forward(8 * m)
    right(90)
end_fill()

k = 30
for x in range(-k * m, k * m, m):
    penup()
    goto(x, -k * m)
    pendown()
    goto(x, k * m)

for y in range(-k * m, k * m, m):
    penup()
    goto(-k * m, y)
    pendown()
    goto(k * m, y)

update()
done()

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

PIC

Получаем ответ 21  .

 

Математическое решение на Python

result = 0
for x in range(1, 100):
    for y in range(1, 100):
        if 0 < x < 8 and 0 < y < 4:
            result += 1
print(result)

Ответ: 21

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное обучение
в Школково

Для детей ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Брянской областей, а также школьникам, находящимся в пунктах временного размещения Крыма обучение на платформе бесплатное.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ или олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!