Выберите ОДНО из предложенных ниже заданий: 15.1 или 15.2.
Условие
Выберите ОДНО из предложенных ниже заданий: 15.1 или 15.2. 15.1 Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:вверх вниз влево вправоПри выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.
Еще четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырех возможных направлений:сверху свободно снизу свободно слева свободно справа свободно
| Эти команды можно использовать вместе с условием «если», имеющим следующий вид: если условие топоследовательность командвсе Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:если справа свободно товправозакраситьвсе В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например: если (справа свободно) и (не снизу свободно) товправовсе Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид: нц пока условиепоследовательность командкц Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм: нц пока справа свободно вправокц Выполните задание. На бесконечном поле имеются четыре стены, соединенные между собой, которые образуют прямоугольник. Длины стен неизвестны. В левой вертикальной стене есть ровно один проход. Проход не может примыкать к углу прямоугольника. Точное место прохода и ширина прохода неизвестна. Робот находится около нижнего конца левой вертикальной стены, снаружи прямоугольника и выше нижней стены. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).

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

| При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера прохода внутри стены. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. 15.2 Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 2.Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 2.Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число — максимальное число, оканчивающееся на 2. Пример работы программы: Входные данные | Выходные данные |
|---|---|
| 4 3 22 6 12 | 22 |
Формат задания
Решение по шагам
Как рассуждать
Решение. 15.1 Команды исполнителя будем записывать жирным шрифтом, а комментарии, поясняющие алгоритм и не являющиеся его частью, — курсивом. Начало комментария будем обозначать символом «|».нц пока не справа свободнозакраситьвверхкц| Двигаемся вверх, пересекаем проход в стененц пока справа свободновверх| Двигаемся вверх, вдоль вертикальной стены, закрашиваем все клетки на пути нц пока не справа свободнозакраситьвверхкц| Поворачиваем вправо вдоль стены, закрашиваем угловую клетку закраситьвправо| Двигаемся вправо, вдоль стены, закрашиваем все клетки на путинц пока не снизу свободнозакраситьвправокц| Поворачиваем вниз вдоль стены, закрашиваем угловую клеткузакраситьвниз| Двигаемся вниз вдоль стены, закрашивая все клетки на путинц пока не слева свободнозакраситьвнизкц| Поворачиваем влево вдоль стены, закрашиваем угловую клеткузакраситьвлево| Двигаемся влево, вдоль стены до конца стены, закрашиваем все клетки на путинц пока не сверху свободнозакраситьвлевокц| Закрашиваем угловую клеткузакрасить Возможны и другие варианты решения. 15.2 Решением является программа, записанная на любом языке программирования. Пример верного решения, записанного на языке Паскаль:var n, i, a, max: integer;begin readln(n); max := 1; for i := 1 to n do begin readln(a); if (a mod 10 =
Осталось ещё 1 шаг
| and (a > max) then max := a; end…
Бесплатно · займёт минуту