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

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

| Конечное расположение Робота может быть произвольным. При исполнении алгоритма Робот не должен разрушиться. Алгоритм должен решать задачу для произвольного размера поля, любого допустимого расположения стен и любого расположения и размера прохода. 15.2 Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 4 и оканчивающихся на 8. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 4 и оканчивающихся на 8. Пример работы программы: Входные данные | Выходные данные |
|---|---|
| 8221628180 | 36 |
Формат задания
Решение по шагам
Как рассуждать
Решение. 15.1 Команды исполнителя будем записывать жирным шрифтом, а комментарии -курсивом. Начало комментария будем обозначать символом "|" .| Двигаемся влево, пока не дойдем до проходанц пока не (снизу свободно)влевокц| Двигаемся влево по проходунц пока (снизу свободно)влевокц| Двигаемся влево и закрашиваем клетки над горизонтальной линией после прохода нц пока не (снизу свободно)закраситьвлевокц| Двигаемся вниз, чтобы оказаться у внешней стороны правого вертикального отрезка стены вниз| Двигаемся вниз и закрашиваем оставшиеся клеткинц пока не (справа свободно)закраситьвнизкц Возможны и другие варианты решения. 15.2 Решением является программа, записанная на любом языке программирования. Пример верного решения, записанного на языке Паскаль: var a, s: integer;begin s := 0; readln(a); while a<>0 do begin if (a mod 4 =
Осталось ещё 2 шага
then s := s + a; readln(a); end…
| and (a % 10 == 8): sumi += a a =…
Бесплатно · займёт минуту