РЕБЯТА УМОЛЯЮ НУЖНО ОЧЕНЬ ОЧЕНЬ РЕШАЕТСЯ СУДЬБА АТТЕСТАТА
15.1 На бесконечном поле имеются две перпендикулярные друг другу
стены, расположенные в виде буквы «Т», длины стен неизвестны.
Робот находится в клетке, расположенной непосредственно над
горизонтальной стеной. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки,
расположенные непосредственно с правой стороны вертикальной
стены. Робот должен закрасить только клетки, удовлетворяющие
данному условию. Например, для приведённого справа рисунка Робот
должен закрасить следующие клетки (см. рисунок).
При исполнении алгоритма Робот не должен разрушиться, выполнение
алгоритма должно завершиться. Конечное расположение Робота может
быть произвольным. Алгоритм должен решать задачу для любого
допустимого расположения стен и любого расположения и размера
прохода внутри стены. Алгоритм может быть выполнен в среде
формального исполнителя или записан в текстовом редакторе.
15.2 Напишите программу, которая в последовательности натуральных чисел определяет сумму всех
чисел, кратных 3 и оканчивающихся на 9. Программа получает на вход натуральные числа, количество
введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания
ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не
превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 3 и
оканчивающихся на 9.
Пример работы программы:
Входные данные Выходные данные
16
29
56
9
39
0
48
Cells.Clear
Dim n As Integer, i As Integer, s As Integer
n = InputBox("n = ")
Cells(1, 1).Value = "n = " + Str(n)
ReDim a(1 To n)
For i = 1 To n
a(i) = InputBox("a(" + Str(i) + ")")
Next i
Cells(2, 1).Value = "Исходный массив"
Range(Cells(3, 1), Cells(3, n)).Value = a
s = 0
For i = 1 To n
s = s + a(i)
Next i
Cells(4, 1).Value = "s = " + Str(s)
Cells(5, 1).Value = "Полученный массив"
For i = 1 To n
a(i) = a(i) + s
Next i
Range(Cells(6, 1), Cells(6, n)).Value = a
End Sub
Потому что, если мы заранее знаем, что Вася живет в этом доме, то сразу ясно, что в этой единственной квартире.
Дополнительное сообщение об этом не несет никакой информации вообще.
Если квартир 2 = 2^1, то сообщение несет 1 бит информации. 1 квартира = 0, 2 квартира = 1.
Если квартир 3, 2<3<4, то есть 2^1<3<2^2, то будет 2 бита. 1кв = 00, 2кв = 01, 3кв = 10. Одного бита не хватает.
И так далее. Сколько квартир в доме (в смысле - 2 в какой степени), столько бит и будет.
128 < 150 < 256, то есть 2^7 < 150 < 2^8, поэтому уточнение номера квартиры дает 8 бит информации.