Контрольные задания > Дан алгоритм для исполнителя Робот и исходная обстановка. Укажите количество клеток, которые будут закрашены и в какой клетке окажется Робот в результате работы алгоритма.
Вопрос:
Дан алгоритм для исполнителя Робот и исходная обстановка. Укажите количество клеток, которые будут закрашены и в какой клетке окажется Робот в результате работы алгоритма.
Давайте разберем алгоритм и определим, как Робот будет действовать на поле.
**Алгоритм:**
1. `закрасить` – Робот закрашивает текущую клетку. 2. `если снизу свободно` – Проверяется, есть ли свободная клетка снизу. * `ТО` (Если снизу свободно): * `если справа свободно` – Проверяется, есть ли свободная клетка справа. * `ТО` (Если справа свободно): * `вправо` – Робот перемещается вправо. * `закрасить` – Робот закрашивает текущую клетку. * `ВСЕ` (Если справа не свободно): * `вверх` - Робот перемещается вверх. * `если слева свободно` – Проверяется, есть ли свободная клетка слева. * `ТО` (Если слева свободно): * `закрасить` – Робот закрашивает текущую клетку. * `ВСЕ` * `ИНАЧЕ` (Если снизу не свободно): * `вверх` - Робот перемещается вверх. * `если слева свободно` – Проверяется, есть ли свободная клетка слева. * `ТО` (Если слева свободно): * `закрасить` – Робот закрашивает текущую клетку. * `ВСЕ` 3. `закрасить` – Робот закрашивает текущую клетку. 4. `вправо` – Робот перемещается вправо.
**Исходная обстановка:**
Робот начинает в клетке C2.
**Выполнение алгоритма:**
1. **C2:** Закрашивает клетку C2. Снизу (C3) свободно. Справа (D2) свободно. Перемещается в D2. Закрашивает D2. 2. **D2:** Снизу (D3) свободно. Справа (E2) свободно. Перемещается в E2. Закрашивает E2. 3. **E2:** Снизу (E3) свободно. Справа (F2) свободно. Перемещается в F2. Закрашивает F2. 4. **F2:** Снизу (F3) свободно. Справа (G2) свободно. Перемещается в G2. Закрашивает G2. 5. **G2:** Снизу (G3) свободно. Справа (H2) свободно. Перемещается в H2. Закрашивает H2. 6. **H2:** Снизу (H3) свободно. Справа (I2) свободно. Перемещается в I2. Закрашивает I2. 7. **I2:** Снизу (I3) свободно. Справа (нет). Робот перемещается вверх в I1. Слева (H1) свободно. Закрашивает H1. 8. **H1:** Снизу (H2) свободно. Справа (I1) свободно. Перемещается в I1. Закрашивает I1. 9. **I1:** Снизу (I2) свободно. Справа (нет). Робот перемещается вверх. Упирается в стену. Слева (H1) свободно. Закрашивает H1. 10. **H1:** Снизу (H2) свободно. Справа (I1) свободно. Перемещается в I1. Закрашивает I1. 11. **I1:** Снизу (I2) свободно. Справа (нет). Робот перемещается вверх. Упирается в стену. Слева (H1) свободно. Закрашивает H1.
После первой итерации, где Робот доходит до правого края и поднимается на одну клетку вверх, становится понятно, что он будет двигаться змейкой, закрашивая клетки, пока не достигнет верхнего края.
Считаем закрашенные клетки: C2, D2, E2, F2, G2, H2, I2, H1, I1. Итого 9 клеток. Далее, робот закрашивает H1 и I1 ещё по 2 раза. После чего останавливается на клетке I1.
Представь, что Робот – это маленький жучок, который умеет красить клетки и двигаться по командам. У нас есть поле, по которому он будет ходить. Наша задача – понять, сколько клеток он покрасит и где остановится.
Алгоритм – это инструкция для жучка. Он сначала красит клетку, где стоит, а потом проверяет, может ли он пойти вниз. Если может, он смотрит, можно ли пойти вправо. Если да, то идет туда и красит клетку. Если вправо нельзя, он идет вверх и красит, если слева свободно. Если вниз нельзя, он идёт вверх и красит слева, если свободно.
Мы начинаем с клетки C2. Жучок красит ее. Потом он идет вправо и красит D2, потом E2, F2, G2, H2, I2. Дойдя до края (I2), он поднимается вверх в I1 и красит H1. Затем снова идёт в I1 красит, после подъёма вверх снова красит и так далее.
Подсчитав все покрашенные клетки, мы узнаем, что их 13, а остановится жучок в клетке I1.