В начало страницы

Вариант «ЕГЭ по информатике 23.03.2016. Досрочная волна» (ДОСР-2016)

Список тем

1, Д1, 2, 3, 4, 5, 6, 7, Д7, 8, 11, 12, Д12, 13, 15, 16, Д17, Д19, 23, Д23, Д24 C1, Д25 C2, Д26 C3, Д27 C4

Задания

Задание 1 (тема 1, №11104)

Текст задания

Между населёнными пунктами А, Б, В, Г, Д, Е и К построены дороги, протяжённость которых приведена в таблице. (Отсутствие числа в таблице означает, что прямой дороги между пунктами нет.)

 

 

АБВГДЕК
А5
Б5358
В34
Г513
Д84125
Е21
К351

 

Определите длину кратчайшего пути между пунктами А и К (при условии, что передвигаться можно только по построенным дорогам).

Задание Д1 (тема Д1, №11102)

Текст задания

Сколько единиц в двоичной записи шестнадцатеричного числа E1A016?

Задание 2 (тема 2, №11103)

Текст задания

Логическая функция F задаётся выражением

 

(x ∧ y ∧¬z) ∨ (x ∧ y ∧ z) ∨ (x ∧¬y ∧¬z).

 

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

 

Перем. 1Перем. 2Перем. 3Функция
?????????F
0101
1101
1111

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

 

Пример. Если бы функция была задана выражением ¬x ∨ y, зависящим от двух переменных: x и y, и был приведён фрагмент её таблицы истинности, содержащий все наборы аргументов, при которых функция F истинна.

 

Перем. 1Перем. 2Функция
??????F
001
101
111

 

Тогда первому столбцу соответствовала бы переменная y, а второму столбцу — переменная x. В ответе следовало бы написать: yx.

Задание 3 (тема 3, №11105)

Текст задания

Ниже представлены две таблицы из базы данных. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите на основании приведённых данных суммарное число дочерей и внучек Коренных А.С.

 

Таблица 1
IDФамилия_И.О.Пол
1171Шемко Н.А.Ж
2242Шемко И.ММ
2251Шемко М.И.М
2262Шемко М.М.М
3342Галиани А.И.Ж
3351Галиани В.С.Ж
3371Галиани С.С.М
4442Коренных А.С.Ж
4451Коренных Л.А.М
4462Воевода О.С.М
4482Воевода М.О.М
5542Бой А.М.Ж
7751Медечко М.А.Ж
.........

Таблица 2
ID_РодителяID_Ребенка
11713371
22422251
22423342
22512262
22515542
33423351
33424462
33713351
33714462
44422251
44423342
77512262
77515542
......

Задание 4 (тема 4, №11106)

Текст задания

По каналу связи передаются сообщения, содержащие только четыре буквы: А, Б, В, Г; для передачи используется двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В используются такие кодовые слова: А — 0; Б — 110; В — 100.

Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

 

Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

Задание 5 (тема 5, №11107)

Текст задания

У исполнителя Аккорд-4 две команды, которым присвоены номера:

 

1. вычти 1

2. умножь на 4

 

Выполняя первую из них, Аккорд-4 вычитает из числа на экране 1, а выполняя вторую, умножает это число на 4. Запишите порядок команд в программе, которая содержит не более пяти команд и преобразует число 5 в число 62. Если таких программ более одной, то запишите любую из них.

 

В ответе указывайте лишь номера команд. Так, для программы

умножь на 4

вычти 1

вычти 1

нужно написать: 211. Эта программа преобразует, например, число 7 в число 26.

Задание 6 (тема 6, №11109)

Текст задания

Определите число, которое будет напечатано в результате выполнения программы, записанной ниже на пяти языках программирования.

 

БейсикPython

DIM N, S AS INTEGER

N = 0

S = 0

WHILE S <= 251

  S = S + 25

  N = N + 1

WEND

PRINT N

n = 0

s = 0

while s <= 251:

    s = s + 25

    n = n + 1

print(n)

Алгоритмический языкПаскаль

алг

нач

  цел n, s

  n := 0

  s := 0

  нц пока s <= 251

    s := s + 25

    n := n + 1

  кц

  вывод n

кон

var n, s: integer;

begin

  n := 0;

  s := 0;

  while s <= 251 do

  begin

    s := s + 25;

    n := n + 1

  end;

  write(n)

end.

Си++

#include <iostream>

using namespace std;

int main()

{

  int n, s;

  n = 0;

  s = 0;

  while (s <= 251)

  {

    s = s + 25;

    n = n + 1;

  }

  cout « n « endl;

}

 

Задание 7 (тема 7, №11110)

Текст задания

Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 320×640 пикселей при условии, что в изображении могут использоваться 256 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.

Задание Д7 (тема Д7, №11108)

Текст задания

Дан фрагмент электронной таблицы.

 

ABC
1410
2= (C1 – 5)/(4*A1)= 1/(C1 + 1)= 3/(2*C1 + B1)

 

 

Какое целое число должно быть записано в ячейке С1, чтобы диаграмма, построенная по значениям ячеек диапазона A2:С2, соответствовала рисунку? Известно, что все значения ячеек из рассматриваемого диапазона неотрицательны.

Задание 8 (тема 8, №11111)

Текст задания

Некоторый алфавит содержит три различные буквы. Сколько пятибуквенных слов можно составить из букв данного алфавита (буквы в слове могут повторяться)?

Задание 11 (тема 11, №11114)

Текст задания

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 9 символов и содержащий только символы из 26-символьного набора прописных латинских букв. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт; это число одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 400 байт. Сколько байт выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число — количество байт.

Задание 12 (тема 12, №11115)

Текст задания

Система команд исполнителя РОБОТ, “живущего” в прямоугольном лабиринте на клетчатой плоскости, включает в себя 4 команды-приказа

и 4 команды проверки условия.

Команды-приказы:

вверх вниз влево вправо

При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены,

то он разрушится, и программа прервётся.

Другие 4 команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:

сверху
свободно
снизу
свободно
слева
свободно
справа
свободно

Цикл

ПОКА условие

последовательность команд

КОНЕЦ ЦИКЛА

выполняется, пока условие истинно.

 

В конструкции

ЕСЛИ условие

ТО команда1

ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ уцелеет и окажется в закрашенной клетке (клетка А1)?

 

НАЧАЛО

ПОКА слева свободно ИЛИ сверху свободно

ЕСЛИ сверху свободно

ТО вверх

ИНАЧЕ влево

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Задание Д12 (тема Д12, №11113)

Текст задания

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 115.181.92.48 адрес сети равен 115.181.80.0. Чему равно значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

Задание 13 (тема 13, №5909)

Варианты

Текст задания

На рисунке — схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, И, К, Л. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город Л?

 

Задание 15 (тема 15, №11119)

Текст задания

На числовой прямой даны два отрезка: P = [20, 50] и Q = [30,65]. Отрезок A таков, что формул

 

¬(x ∈ A) → ((x ∈ P) →¬ (x ∈ Q))

 

истинна при любом значении переменной x. Какова наименьшая возможная длина отрезка A?

Задание 16 (тема 16, №11112)

Текст задания

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

БейсикPython

SUB F(n)

  IF n > 0 THEN

    PRINT "*"

    F(n - 1)

    F(n \ 3)

  END IF

END SUB

def F(n):

    if n > 0:

        print("*")

        F(n - 1)

        F(n // 3)

Алгоритмический языкПаскаль

алг F(цел n)

нач

  если n > 0 то

    вывод "*"

    F(n - 1)

    F(div(n, 3))

  все

кон

procedure F(n: integer);

begin

  if n > 0 then

  begin

    writeln('*');

    F(n - 1);

    F(n div 3)

  end

end

Си

void F(int n)

{

  if (n > 0)

  {

    printf("*");

    F(n - 1);

    F(n / 3);

  }

}

 

 

Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(6)?

Задание Д17 (тема Д17, №11118)

Текст задания

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.

 

ЗапросНайдено страниц (в тысячах)
Мадрид & Берлин245
Мадрид & Берлин & Париж120
Мадрид & Париж235

 

Компьютер печатает количество страниц (в тысячах), которое будет найдено по следующему запросу:

 

Мадрид & (Берлин | Париж)

 

Укажите целое число, которое напечатает компьютер. Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

Задание Д19 (тема Д19, №11120)

Текст задания

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 4, 3, 0, 7, 2, 1, 5, 9, 6 соответственно, т.е. A[0] = 8, A[1] = 4 и т. д. Определите значение переменной s после выполнения следующего фрагмента программы (записанного ниже на разных языках программирования).

 

БейсикPython

s = 0

FOR j = 0 TO 9

  IF A(j) <=4 THEN

    s = j

  ENDIF

NEXT j

s = 0

for j in range(10):

    if A[j] <= 4:

      s = j

Алгоритмический языкПаскаль

s := 0

нц для j от 0 до 9

  если A[j] <= 4 то

    s := j

  все

кц

s := 0;

for j := 0 to 9 do

  if A[j] <= 4 then

    s := j;

Си++

s = 0;

for (j = 0; j <= 9; j++) {

    if (A[j] <= 4) {

      s = j;

    }

}

 

Задание 23 (тема 23, №11123)

Текст задания

Исполнитель Вычитатель преобразует число, которое записано на экране. У исполнителя Вычитатель две команды, которым присвоены номера:

 

1. Вычти 2

2. Вычти 5

 

Первая из них уменьшает число на экране на 2, вторая уменьшает его на 5. Программа для Вычитателя – это последовательность команд. Сколько есть программ, которые число 22 преобразуют в число 2?

Задание Д23 (тема Д23, №11124)

Текст задания

Сколько существует различных наборов значений логических переменных x1, x2, … x6, y1, y2, … y6, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1 → x2) ∧ (x2 → x3) ∧ (x3 → x4) ∧ (x4 → x5) ∧ (x5 → x6) = 1

(y1 → y2) ∧ (y2 → y3) ∧ (y3 → y4) ∧ (y4 → y5) ∧ (y5 → y6) = 1

(¬x1 ∨ y1) ∧ (¬x2 ∨ y2) ∧ (¬x3 ∨ y3) ∧ (¬ x4 ∨ y4) ∧ (¬x5 ∨ y5) ∧ (¬x6 ∨ y6) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, … x6, y1, y2, … y6, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

Задание Д24 C1 (тема Д24 C1, №11125)

Текст задания

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество чётных чисел в исходной последовательности и максимальное чётное число. Если чётных чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

CONST n = 4

count = 0

maximum = 1000

FOR I = 1 TO n

  INPUT x

    IF x mod 2 = 0 THEN

      count = count + 1

    IF x > maximum THEN

      maximum = I

    END IF

  END IF

NEXT I

IF count > 0 THEN

  PRINT count

  PRINT maximum

ELSE

  PRINT "NO"

END IF

n = 4

count = 0

maximum = 1000

for i in range (1, n+1):

    x = int(input())

    if x % 2 == 0:

        count += 1

        if x > maximum:

            maximum = i

if count > 0:

    print (count)

    print (maximum)

else:

    print ("NO")

Алгоритмический языкПаскаль

алг

нач

  цел n = 4

  цел i, x

  цел maximum, count

  count := 0

  maximum := 1000

  нц для i от 1 до n

    ввод x

    если mod(x, 2) = 0 то

      count := count + 1

      если x > maximum то

        maximum := i

      все

    все

  кц

  если count > 0 то

    вывод count, нс

в    ывод maximum

  иначе

    вывод "NO"

  все

кон

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

  count := 0;

  maximum := 1000;

  for i := 1 to n do

  begin

    read(x);

    if x mod 2 = 0 then

    begin

      count := count + 1;

      if x > maximum then

          maximum := i

    end

  end;

  if count > 0 then

  begin

    writeln(count);

    writeln(maximum)

  end

  else

    writeln('NO')

end.

Си++

#include <iostream>

using namespace std;

#define n 4

int main(void)

{

  int i, x;

  int maximum, count;

  count = 0;

  maximum = 1000;

  for (i = 1; i <= n; i++)

  {

    cin >> x;

    if (x % 2 == 0)

    {

      count++;

      if (x > maximum)

        maximum = i;

    }

  }

  if (count > 0)

  {

    cout << count << endl;

    cout << maximum << endl;

  }

  else

    cout << "NO\n";

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе последовательности: 2 9 4 3

2. Приведите пример такой последовательности, содержащей хотя бы одно чётное число, что, несмотря на ошибки, приведённая программа печатает правильный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

 

Примечание. 0 – чётное число.

Задание Д25 C2 (тема Д25 C2, №11126)

Текст задания

Дан целочисленный массив из 50 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых оба числа двузначные. В данной задаче под парой подразумевается два подряд идущих элемента массива.

Например, для массива из пяти элементов: 16 2 14 91 21 — ответ: 2. Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 

 

БейсикPython

CONST N = 50

DIM A (1 TO N) AS INTEGER

DIM I, J, K, AS INTEGER

FOR I = 1 TO N

  INPUT A(I)

NEXT I

...

END

//допускается также использовать

//две целочисленные переменные j и k

a = []

n = 50

for i in range(0, n):

  a.append(int(input()))

...

Алгоритмический языкПаскаль

алг

нач

  цел N = 50

  целтаб a[1:N]

  цел i, j, k

  нц для i от 1 до N

    ввод a[i]

  кц

  ...

кон

const

    N = 50;

var

    a: array [1..N] of integer;

    i, j, k: integer;

begin

    for i := 1 to N do

        readln(a[i]);

    ...

end.

Си++Естественный язык

#include <iostream>

using namespace std;

#define N 50

int main() {

    int a[N];

    int i, j, k;

    for (i = 0; i<N; i++)

        cin >> a[i];

    ...

    return 0;

}

Объявляем массив A из 50 элементов.

Объявляем целочисленные переменные I, J, K.

В цикле от 1 до 50 вводим элементы массива A с 1-го по 50-й.

 

 

В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

Задание Д26 C3 (тема Д26 C3, №11127)

Текст задания

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или три камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 18 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится не менее 28.

Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 28 или больше камней. В начальный момент в куче было S камней; 1 ≤ S ≤ 27.

 

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

 

Задание 1

а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающие ходы.

б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.

 

Задание 2

Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

− Петя не может выиграть за один ход

− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Для каждого указанного значения S опишите выигрышную стратегию Пети.

 

Задание 3

Укажите значение S, при котором одновременно выполняются два условия:

− у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

− у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

 

Для указанного значения S опишите выигрышную стратегию Вани.

Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рисунке на рёбрах дерева указывайте, кто делает ход; в узлах — количество камней в позиции.

Задание Д27 C4 (тема Д27 C4, №11128)

Текст задания

По каналу связи передаётся последовательность положительных целых чисел, все числа не превышают 1000. Количество чисел известно, но может быть очень велико. Затем передаётся контрольное значение последовательности — наименьшее число R, удовлетворяющее следующим условиям:

1) R является произведением двух различных переданных элементов последовательности («различные» означает, что не рассматриваются квадраты переданных чисел, произведения различных элементов последовательности, равных по величине, допускаются);

2) R кратно 6.

 

Если такого числа R нет, то контрольное значение полагается равным 0. В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены.

Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет проверять правильность контрольного значения.

Программа должна напечатать отчёт по следующей форме:

 

Вычисленное контрольное значение: …

Контроль пройден (или — Контроль не пройден)

 

Перед текстом программы кратко опишите используемый Вами алгоритм решения.

На вход программе в первой строке подаётся количество чисел N;

в программе можно считать, что 2 ≤ N ≤ 10 000. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. В последней строке записано контрольное значение — натуральное число, не превышающее 1 000 000.

 

Пример входных данных:

6

30

6

5

3

4

300

12

Пример выходных данных для приведённого выше примера входных данных:

Вычисленное контрольное значение: 12

Контроль пройден