Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика задания + решения.doc
Скачиваний:
32
Добавлен:
11.02.2015
Размер:
1.36 Mб
Скачать

Решение:

1) После выполнения первого цикла по i получаем следующую последовательность элементов массива А: А[1] = 1 – 3 = –2 А[2] = 2 – 3 = –1 А[3] = 3 – 3 = 0 А[4] = 4 – 3 = 1 А[5] = 5 – 3 = 2. 2) Элементы массива B[i,j] = A[i] + 1 в каждой строке одинаковы. Они зависят только от i. B[1,j] = A[1] + 1= –2 + 1 = –1 (j = 1, 2, ... , 5) B[2,j] = A[2] + 1= –1 + 1 = 0 (j = 1, 2, ... , 5) B[3,j] = A[3] + 1= 0 + 1 = 1 (j = 1, 2, ... , 5) B[4,j] = A[4] + 1= 1 + 1 = 2 (j = 1, 2, ... , 5) B[5,j] = A[5] + 1= 2 + 1 = 3 (j = 1, 2, ... , 5). Таким образом, после выполнения заданного фрагмента программы в массиве В пять элементов будут равны 1. Это элементы третьей строки массива В: B[3,j] = A[3] + 1= 0 + 1 = 1 (j = 1, 2, ... , 5). Ответ: 5.

Задание A13.

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости: . При выполнении любой из этих команд РОБОТ перемещается на одну клетку в соответствующем направлении. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: . Цикл выполняется, пока условие истинно, иначе происходит переход на следующую строку. Если РОБОТ начнет движение в сторону стены, то он разрушится, и выполнение программы прервется. Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ уцелеет и остановится в той же клетке, с которой он начал движение?

Решение:

1) Так как по условию задачи РОБОТ должен остановиться в той же клетке, из которой он начал свое движение, то стартовая позиция определяется последней строкой заданного алгоритма движения РОБОТА. В данном случае это строка «ПОКА <сверху свободно>», то есть РОБОТ должен остановиться (а также начинать свое движение) из клетки, имеющей границу сверху. Если же <сверху НЕ свободно>, то РОБОТ переходит к выполнению оператора: ПОКА <справа свободновниз. Этот оператор будет выполняться до тех пор, пока не возникнет стенка справа, то есть: сверху НЕ свободно – вниз до стенки справа. Изобразим это на клетчатой плоскости (стартовая позиция РОБОТА указана точкой): 2) Продолжим анализ заданной программы. Если <справа НЕ свободно>, то РОБОТ переходит к выполнению оператора: ПОКА <снизу свободновлево, и этот оператор будет выполняться до тех пор, пока не возникнет стенка снизу. Таким образом, имеем: сверху НЕ свободно – вниз, справа НЕ свободно – влево до стенки снизу. Изобразим это на клетчатой плоскости: Анализируя далее заданный алгоритм движения РОБОТА аналогичным образом, получаем следующую последовательность действий РОБОТА (сравните с заданной программой): сверху НЕ свободно – вниз до стенки справа, справа НЕ свободно – влево до стенки снизу, снизу НЕ свободно – вверх до стенки слева, слева НЕ свободно – вправо до стенки сверху. Такая запись позволяет изобразить «коридор», по которому может двигаться РОБОТ, чтобы уцелеть (напомним, что точкой мы указали стартовую позицию РОБОТА): 3) Итак, мы выяснили, что РОБОТ должен начать свое движение из клетки, имеющей границу сверху. Обозначим такие клетки на заданном поле. Исключим те из них, которые не обеспечивают РОБОТУ свободный проход по «коридору». Оставшиеся клетки удовлетворяют требованиям алгоритма задачи. Всего таких клеток – 3. Ответ: 3.

Задание B1.

Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке длиной в 20 символов, первоначально записанного в 2-байтном коде Unicode, в 8-битную кодировку КОИ-8. На сколько бит уменьшилась длина сообщения? В ответе запишите только число.

Решение:

1) Размер сообщения в кодировке Unicode:     (бит). 2) Размер сообщения в кодировке КОИ-8:     (бит). 3) Разница в битах:   (бит). Ответ: 160.

Задание B2.

У исполнителя Утроитель две команды, которым присвоены номера: 1. прибавь 1, 2. умножь на 3. Первая из них увеличивает число на экране 1, вторая – утраивает его. Запишите порядок команд в программе преобразования числа 1 в число 22, содержащей не более 5, указывая лишь номера команд. Например, программа 21211 – это программа    умножь на 3    прибавь 1    умножь на 3    прибавь 1    прибавь 1, которая преобразует число 1 в 14. (Если таких программ более одной, то запишите любую из них.)