Контрольные задания > Дан алгоритм для исполнителя Робот и исходная обстановка.
Укажите количество клеток, которые будут закрашены и в какой клетке окажется Робот в результате работы алгоритма.
использовать Робот
алг
нач
закрасить
если снизу свободно
то
если справа свободно
то вправо
закрасить
все
иначе
вверх
если слева свободно
то закрасить
все
все
закрасить
вправо
кон
Вопрос:
Дан алгоритм для исполнителя Робот и исходная обстановка.
Укажите количество клеток, которые будут закрашены и в какой клетке окажется Робот в результате работы алгоритма.
использовать Робот
алг
нач
закрасить
если снизу свободно
то
если справа свободно
то вправо
закрасить
все
иначе
вверх
если слева свободно
то закрасить
все
все
закрасить
вправо
кон
Предположим, что Робот начинает в какой-то клетке. Давайте проследим за выполнением алгоритма:
1. `закрасить`: Робот закрашивает текущую клетку. (1 клетка закрашена)
2. `если снизу свободно`: Проверяется, свободна ли клетка снизу.
* Если `снизу свободно`:
* `если справа свободно`: Проверяется, свободна ли клетка справа.
* Если `справа свободно`: Робот перемещается `вправо`. Теперь Робот в другой клетке.
* `закрасить`: Робот закрашивает текущую клетку. (2 клетки закрашены)
* `все` (конец внутреннего `если`)
* `все` (конец внешнего `если`)
* `иначе` (если `снизу не свободно`):
* `вверх`: Робот перемещается `вверх`. Теперь Робот в другой клетке.
* `если слева свободно`:
* `то закрасить`: Робот закрашивает текущую клетку (2 клетки закрашены, если `слева свободно`, либо 1, если `слева не свободно`)
* `все`
* `все`
3. `закрасить`: Робот закрашивает текущую клетку. (2 или 3 клетки закрашены)
4. `вправо`: Робот перемещается `вправо`. Теперь Робот в другой клетке.
5. `кон` (конец алгоритма).
Результат:
* Закрашено либо 2, либо 3 клетки (зависит от того, есть ли свободные клетки снизу, справа и слева).
* Робот окажется в клетке справа от начальной позиции, если снизу было свободно, и справа от финальной позиции, если снизу не было свободно.