===Что умеет робот?=== Робот может измерять //уровень радиации// в клетке. Для этого есть встроенная величина **радиация**, равная уровню радиации в текущей клетке. Данная величина имеет вещественный (действительный) тип. Например, для того, чтобы вывести уровень радиации в каждой клетке горизонтального коридора можно использовать следующий алгоритм:
%%(code) нц пока справа свободно вправо вывод "Уровень радиации в клетке равен ", радиация, нс кц %%
В данном случае для каждой клетки будет выведено значение радиации в этой клетке, а затем вывод будет осуществлен с новой строки (для этого нужен вывод специального ключевого слова **нс**, что означает //новая строка//).
Со значением **радиация** можно работать, как с обычными //величинами// при этом величина **радиация** имеет тип **вещ**. Величины типа **вещ** могут принимать вещественные (действительные) значения: 0.5, -1 и т.д.
Например, можно сохранить значение радиации в величине вещественного типа:
%%(code) вещ Предыдущее значение радиации Предыдущее значение радиации := радиация вправо вывод "Радиация в этой клетке равна ", радиация, нс вывод "А радиация в предыдущей клетке была равна ", Предыдущее значение радиации, нс %%
Допустимые операции с вещественными величинами: +, -, *, /.
Допустимые операции сравнения с целыми и вещественными величинами, которые можно использовать в логических условиях: <, <=, >, >=, =, <> (не равно).
В задачах A-L этого листка робот находится в левом конце горизонтального коридора, заканчивающегося тупиками. Клетка, в которой находится робот, считается начальной (безопасной) и не учитывается алгоритмом. Робот должен дойти до правого конца коридора и для каждой клетки (включая самую правую, но исключая начальную клетку) выполнить определенное действие. В некоторых алгоритмах регламентировано количество проходов по коридору, которое может выполнить робот.
===Задание 12-A=== Пронумеруем клетки слева направо, начиная с 1, не считая начального положения робота (смотрите пример стартовой обстановки). Для каждой клетки выведите строку текста вроде "Уровень радиации в клетке 1 равен 3.5", увеличивая номер клетки и выводя значение радиации в этой клетке.
Указание. Заведите величину **цел счетчик**, которая будет равна номеру клетки. Выводите значение этой величины и величины **радиация**.
===Задание 12-B=== Назовем клетку //опасной//, если уровень радиации в этой клетке строго больше 5. Закрасьте все опасные клетки (на примерах стартовых обстановок они отмечены звездочками).
Указание: **если радиация > 5 то**
===Задание 12-C=== Закрасьте все клетки, уровень радиации в которых выше, чем в клетке, где робот стоит первоначально.
===Задание 12-D=== Подсчитайте количество опасных (радиация > 5) и безопасных клеток, не считая начальную клетку. Выведите после окончания алгоритма количество опасных и безопасных клеток в следующем виде: %%(code) Обнаружено 5 опасных и 7 безопасных клеток %%
**Робот должен сделать один проход по коридору.** Указание: заведите счетчики числа опасных и безопасных клеток.
Ответы к примерам 01: Обнаружено 6 опасных и 9 безопасных клеток 02: Обнаружено 7 опасных и 7 безопасных клеток 03: Обнаружено 9 опасных и 0 безопасных клеток 04: Обнаружено 0 опасных и 9 безопасных клеток
===Задание 12-E=== Исследуйте коридор на опасные (радиация > 5) и безопасные клетки. После окончания работы алгоритма робот должен вывести номера опасных и безопасных клеток в следующем виде: %%(code) Опасные клетки: 4 6 7 10 13 14 Безопасные клетки: 1 2 3 5 8 9 11 12 15 %%
В этой задаче нужно использовать только один счетчик.
Указание. Сначала выведите номера опасных клеток. Верните робота назад и выведите номера безопасных клеток. После вывода номера опасной или безопасной клетки нужно вывести строку, содержащую один пробел. **нс** нужно вывести один раз после вывода списка всех опасных клеток и один раз после вывода всех безопасных клеток.
===Задание 12-F=== Вычислите среднее значение радиации для всех клеток коридора (кроме начальной). Выведите полученное значение. На каждой клетке подписан уровень радиации в этой клетке.
**Робот должен сделать один проход по коридору**. Указание: заведите две величины: **вещ сумма радиации** и **цел счетчик клеток**.
===Задание 12-G=== Закрасьте все клетки, в которых уровень радиации выше средней величины радиации во всем коридоре.
===Задание 12-H=== Посчитайте количество клеток, в которых радиация выше средней величины и выведите это количество на экран.
Ответы к примерам: 01: 5 02: 2 03: 0 04: 3
===Задание 12-I=== Вычислите две величины - среднее значение уровня радиации в опасных (радиация > 5) клетках и среднее значение уровня радиации в безопасных клетках. Выведите два найденных значения. **Робот должен сделать один проход по коридору.** Гарантируется, что в коридоре есть как опасные, так и безопасные клетки.
Указание: одновременно за один проход обрабатывать как опасные, так и безопасные клетки.
Ответы к примерам: 01: Среднее значение радиации в опасных клетках 6. Среднее значение радиации в безопасных клетках 4. 02: Среднее значение радиации в опасных клетках 6.5. Среднее значение радиации в безопасных клетках 3.5. 03: Среднее значение радиации в опасных клетках 6.333333. Среднее значение радиации в безопасных клетках 2.166667.
===Задание 12-J=== Решите предыдущую задачу при дополнительном условии: если в коридоре нет опасных клеток, робот должен вывести строку "Опасных клеток нет" вместо вывода среднего значения радиации в опасных клетках, аналогично для безопасных клеток.
Ответы к примерам: 04: Опасных клеток нет. Среднее значение радиации в безопасных клетках 2.666667. 05: Среднее значение радиации в опасных клетках 6.875. Безопасных клеток нет. 06: Опасных клеток нет. Безопасных клеток нет.
===Задание 12-K=== Определите, есть ли в данном коридоре две соседние опасные (радиация > 5) клетки. При обнаружении двух соседних опасных клеток выведите сообщение с указанием их номеров, например: "Клетки с номерами 3 и 4 являются опасными" Для каждой пары опасных клеток должно быть выведено одно сообщение.
Указание: запоминайте значение радиации в предыдущей клетке в специальной величине.
Ответы к примерам: 01: Соседние опасные клетки: 5 и 6, 8 и 9, 9 и 10, 14 и 15, 02: Соседние опасные клетки: 1 и 2, 2 и 3, 6 и 7, 10 и 11, 11 и 12, 12 и 13
===Задание 12-L=== Определите, есть ли в данном коридоре две соседние опасные клетки. Робот должен вывести одно из двух сообщений: либо "В коридоре есть две соседние опасные клетки", либо "В коридоре нет двух соседних опасных клеток".
Ответы к примерам: 01: В коридоре есть две соседние опасные клетки 02: В коридоре есть две соседние опасные клетки 03: В коридоре есть две соседние опасные клетки 04: В коридоре нет двух соседних опасных клеток 05: В коридоре нет двух соседних опасных клеток
===Задание 12-M=== Закрасьте на поле те опасные клетки, рядом с которыми есть другие опасные клетки (т.е. должны быть закрашены все неодиночные опасные клетки).
===Задание 12-N=== Робот находится в левом конце горизонтального коридора. От коридора вверх отходят вертикальные тупики различной длины. Робот должен дойти до правого конца коридора и закрасить те клетки коридора, от которых вверх отходят тупики, содержащие опасные (радиация > 5) клетки.
===Задание 12-O=== Робот находится в левом конце горизонтального коридора. От коридора вверх отходят вертикальные тупики различной длины. Робот должен дойти до правого конца коридора и закрасить целиком те тупики, средний уровень радиации в которых больше 5.
===Задание 12-P=== Робот находится в левом верхнем углу прямоугольного поля. Определите, сколько на этом поле опасных клеток. Закрасьте все опасные (радиация > 5) клетки и выведите их количество. На клетках подписано значение радиации в этих клетках.
Ответы к примерам: 01: 7 02: 6 03: 4 04: 3 05: 3
===Задание 12-Q=== Робот находится в левом верхнем углу прямоугольного поля. Определите среднее значение радиации для всех клеток этого поля. На клетках подписано значение радиации в этих клетках.
===Задание 12-R=== Робот находится в левом верхнем углу прямоугольного поля. Закрасьте те клетки прямоугольного поля, значение радиации в которых выше средней величины и выведите их количество. На клетках подписано значение радиации в этих клетках.
===Задание 12-S=== Робот находится внутри произвольного лабиринта. Выход из лабиринта - это клетка, в которой значение радиации равно 5, робот не может находиться в клетках, в которых значение радиации больше 5. Приведите робота к выходу из лабиринта.
---- адрес оригинала: ((/Информатика/Архив/2010/7Б/20100111))