Поделитесь своими знаниями, ответьте на вопрос:
15.1 На бесконечном поле имеются две перпендикулярные друг другустены, расположенные в виде буквы «Т», длины стен неизвестны.Робот находится в клетке, расположенной непосредственно надгоризонтальной стеной. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р»Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно с правой стороны вертикальнойстены. Робот должен закрасить только клетки, удовлетворяющиеданному условию. Например, для приведённого справа рисунка Роботдолжен закрасить следующие клетки (см. рисунок).При исполнении алгоритма Робот не должен разрушиться, выполнениеалгоритма должно завершиться. Конечное расположение Робота можетбыть произвольным. Алгоритм должен решать задачу для любогодопустимого расположения стен и любого расположения и размерапрохода внутри стены. Алгоритм может быть выполнен в средеформального исполнителя или записан в текстовом редакторе.15.2 Напишите программу, которая в последовательности натуральных чисел определяет сумму всехчисел, кратных 3 и оканчивающихся на 9. Программа получает на вход натуральные числа, количествовведённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончанияввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа непревышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 3 иоканчивающихся на 9.Пример работы программы:Входные данные Выходные данные162956939048
15.1 Для того чтобы решить данную задачу, Роботу нужно двигаться вправо и смотреть вниз, чтобы проверить, есть ли стена в следующей клетке. Если в следующей клетке есть стена, Робот ее обходит справа и продолжает двигаться вправо. Если стены в следующей клетке нет, Робот закрашивает текущую клетку и двигается вправо до тех пор, пока не достигнет стены.
Вот подробный алгоритм:
1. Проверяем, есть ли стена в следующей клетке:
1.1 Если есть, двигаемся вправо, обходим стену справа, иначе переходим к следующему шагу.
1.2 Если двигаемся вниз, чтобы проверить, есть ли стена в следующей клетке:
- Если есть стена, то завершаем алгоритм, иначе переходим к следующему шагу.
2. Закрашиваем текущую клетку.
3. Двигаемся вправо.
4. Проверяем условие, что Робот не достиг стены:
- Если достигли стены, то завершаем алгоритм, иначе переходим к следующему шагу.
5. Возвращаемся к шагу 1.
Таким образом, Робот будет двигаться вправо, закрашивая клетки непосредственно справа от вертикальной стены до ее конца.
15.2 Для того чтобы решить данную задачу, нужно последовательно вводить числа с клавиатуры. При каждом вводе числа проверяем, оканчивается ли оно на 9 и кратно ли оно 3. Если условие выполняется, то добавляем это число к общей сумме чисел. Вводим числа до тех пор, пока не будет введено число 0 (признак окончания ввода). После того, как было введено число 0, выводим общую сумму чисел.
Вот подробная программа на Python, решающая данную задачу:
```python
sum = 0
number = int(input("Введите число: ")) # Первое введенное число
while number != 0:
if number % 10 == 9 and number % 3 == 0:
sum += number
number = int(input("Введите число: ")) # Следующее введенное число
print("Сумма чисел, кратных 3 и оканчивающихся на 9:", sum)
```
Таким образом, программа последовательно считывает числа и проверяет условие, после чего добавляет число к общей сумме, если условие выполняется. После ввода числа 0 программа выводит общую сумму чисел, удовлетворяющих условию.