7Б "Робот". Задание №10: Считаем шаги
Что умеет робот?
Целочисленным величинам можно присваивать значения. Величина должна быть определена в начале алгоритма.
использовать Робот алг Cчитаем клетки нач цел счетчик счетчик := 0 нц пока справа свободно вправо счетчик := счетчик + 1 кц вывод "Прошли ", счетчик, " шагов" кон
В заданиях этого листка нельзя пользоваться рекурсией!
Задание 10-А
Робот находится в горизонтальном коридоре. Справа от робота – тупик. Доведите робота до конца коридора, сосчитав шаги. Закрасьте самую правую клетку коридора и верните робота в исходную клетку.
Задание 10-B
Робот находится в горизонтальном коридоре. Справа от робота есть закрашенная клетка. Робот должен дойти до закрашенной клетки, пройти ее, затем пройти вправо на такое же расстояние, то есть робот должен остановиться в клетке, симметричной начальной позиции относительно закрашенной клетки.
Задание 10-C
Робот находится снизу от бесконечной стены (в соседней с ней клетке). Где-то слева от робота в стене есть проход. Робот должен дойти до прохода, пройти через проход и вернуться вправо на такое же расстояние (то есть робот должен оказаться в клетке, соседней с первоначальным положением, но по другую сторону стены).
Задание 10-D
Робот находится в горизонтальном коридоре. Справа от робота есть закрашенная клетка. Робот должен дойти до закрашенной клетки, пройти ее, затем пройти вправо на расстояние, вдвое большее, чем первоначальное.
Задание 10-E
Робот находится в горизонтальном коридоре, где-то справа от робота есть стена. Переместите робота в такую клетку, чтобы расстояние от робота до правой стены было вдвое больше, чем первоначально.
Задание 10-F
Робот находится снизу от бесконечной стены, не обязательно в соседней со стеной клетке. Передвиньте робота вправо на расстояние, равное расстоянию от робота до стены (робот должен остановиться в клетке, расположенной на это же горизонтали).
Задание 10-G
Робот находится в левом конце горизонтального коридора. Коридор состоит из нечетного числа клеток. Переведите робота в среднюю клетку коридора.
Задание 10-H
Робот находится в горизонтальном коридоре, ограниченном с двух сторон. Переместите робота в клетку, симметричную относительно середины коридора.
В этой задаче можно пользоваться циклом.
Задание 10-I
Робот находится в горизонтальном коридоре. Посчитайте, сколько в этом коридоре закрашенных клеток, расположенных правее робота и выведите их количество на экран инструкцией "вывод".
Ответы для данных стартовых обстановок: 01 – 5, 02 – 4, 03 – 14, 04 – 0, 05 – 0.
Задание 10-J
Робот находится в горизонтальном коридоре. Справа от робота есть тупик. Возможно, что справа от робота есть клад (закрашенная клетка). Напишите программу, которая перемещает робота в клетку с кладом, если есть клад, или возвращает его в исходное положение, если клада нет.
Задание 10-K
Робот находится снизу от бесконечной стены, не обязательно в соседней со стеной клетке. Где-то слева от робота в стене есть проход. Робот должен обойти стену и оказаться в клетке, симметричной начальному положению относительно стены.
Задание 10-L
Робот находится на прямоугольном поле. Закрасьте клетку, расположенную в правом нижнем углу поля и верните робота в исходное положение.
Задание 10-M
Робот находится в левом верхнем углу прямоугольного поля. Подсчитайте количество клеток в этом поле и выведите его инструкцией "вывод". Для умножения величин используется операция "*".
Ответы для данных стартовых обстановок: 01 – 20, 02 – 4, 03 – 150, 04 – 1, 05 – 70.
Задание 10-N
Робот находится в горизонтальном коридоре, где-то справа от робота есть стена. Переместите робота в клетку, расстояние от которой до стены вдвое меньше, чем расстояние до стены от первоначального расположения робота (в случае нечетного расстояние "вдвое меньше" означает деление с отбрасыванием дробной части).
Задание 10-O
На бесконечном поле имеется бесконечная горизонтальная стена. Робот находится ниже стены в соседней со стеной клетке. Где-то в стене есть проход. Робот должен найти проход и остановиться в клетке над проходом (как в задаче 08-D).
В этой задаче поле и стена предполагаются бесконечными, поэтому решения, использующие внешние стенки поля (например, нц пока слева свободно ... кц), а также решения, содержащие циклы, выполняющиеся фиксированное количество раз (например, нц 1000 раз ... кц) приниматься не будут.
Клетка, в которой находится робот первоначально – закрашена. Закрашивать другие клетки робот не может.
Задание 10-P
Робот находится на бесконечном поле. Где-то правее робота (возможно, что и в той же клетке, где находится робот) есть закрашенная клетка. Робот должен закрасить квадрат, левый верхний угол которого – клетка, в которой робот находился первоначально, правый верхний угол которого – закрашенная клетка, и вернуться в начальную клетку.
Задание 10-Q
Решите задачу O при условии, что начальная клетка – не закрашена и закрашивать дополнительные клетки робот не может.