Top.Mail.Ru
Ответы
Аватар пользователя
2 года назад
от

Помогите с информатикой, нужно срочно!

Исполнитель Робот находится в точке, указанной буквой Р. Напишите программу с
алгоритмом для Робота, в результате работы которого будут закрашены клетки так, как
показано на рисунке (слева – начальное состояние Робота, справа – результат работы
алгоритма). Решение должно быть написано так, чтобы оно выполнялось для сторон
произвольной длины. Конечное положение Робота не имеет значения (программа называется Кумир)

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок

Исполнитель RoboStart:

Аватар пользователя
Ученик

Для решения этой задачи можно использовать следующий алгоритм:

Робот должен повернуться направо на 90 градусов.
Робот должен двигаться вперед до тех пор, пока не достигнет края поля или уже закрашенной клетки. При этом он должен закрашивать клетки, которые проходит.
Робот должен повернуться на 180 градусов.
Робот должен двигаться вперед до тех пор, пока не достигнет края поля или уже закрашенной клетки. При этом он должен закрашивать клетки, которые проходит.
Робот должен повернуться на 90 градусов вправо и двигаться вперед до тех пор, пока не достигнет края поля или уже закрашенной клетки. При этом он должен закрашивать клетки, которые проходит.
Робот должен повернуться на 90 градусов вправо и двигаться вперед до тех пор, пока не достигнет края поля или уже закрашенной клетки. При этом он должен закрашивать клетки, которые проходит.
Робот должен повернуться на 180 градусов и двигаться вперед до тех пор, пока не достигнет края поля или уже закрашенной клетки. При этом он должен закрашивать клетки, которые проходит.
Пример реализации этого алгоритма на языке Кумир:

scss
Copy code
алг Кумир{
нач
повернуть(направо)
пока(не закрашено_ли()) {
если(не закрашено_ли()) {
закрасить()
}
вперед()
}
повернуть(180)
пока(не закрашено_ли()) {
если(не закрашено_ли()) {
закрасить()
}
вперед()
}
повернуть(направо)
пока(не закрашено_ли()) {
если(не закрашено_ли()) {
закрасить()
}
вперед()
}
повернуть(направо)
пока(не закрашено_ли()) {
если(не закрашено_ли()) {
закрасить()
}
вперед()
}
повернуть(180)
пока(не закрашено_ли()) {
если(не закрашено_ли()) {
закрасить()
}
вперед()
}
кон
}
Здесь функции "повернуть()", "вперед()", "закрасить()", "закрашено_ли()" - это стандартные функции