№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка
PDF-версия PDF-версия (вертикальная) PDF-версия (крупный шрифт) PDF-версия (с большим полем) Версия для копирования в MS Word
Вариант № 4871414

1.

Вычислите: 101010102 – 2528 + 716. Ответ запишите в десятичной системе счисления.

2.

Логическая функция F задаётся выражением (zy) ∨ ((xz ) ≡ (yw)).

Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.

Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

 

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
10
110
1110

 

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

Пример. Пусть задано выражение xy, зависящее от двух переменных x и y, и фрагмент таблицы истинности:

 

Переменная 1Переменная 1Функция
??????F
010

 

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

3.

На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о длинах этих дорог (в километрах).

 

П1П2П3П4П5П6П7
П14015
П2403550
П310658
П415352233
П51050
П65065225040
П783340

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта Б в пункт Д. В ответе запишите целое число.

4.

В фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите ID дяди Корзун П. А.

 

Таблица 1
IDФамилия_И.О.Пол
1072Онищенко А. Б.Ж
1028Онищенко Б. Ф.М
1099Онищенко И. Б.М
1178Онищенко П. И.М
1056Онищенко Т. И.М
1065Корзун А. И.Ж
1131Корзун А. П.М
1061Корзун Л. А.М
1217Корзун П. А.Ж
1202Зельдович М. А.М
1027Лемешко Д. А.Ж
1040Лемешко В. А.Ж
1046Месяц К. Г.М
1187Лукина Р. Г.Ж
1093Фокс П. А.Ж
1110Друк Г. Р.Ж

Таблица 2
ID_РодителяID_Ребенка
10271072
10271099
10281072
10281099
10721040
10721202
10721217
10991156
10991178
11101156
11101178
11311040
11311202
11311217
11871061
11871093

5.

Для кодирования букв О, Ч, Б, А, К решили использовать двоичное представление чисел 0, 1, 2, 3 и 4 соответственно (с сохранением одного незначащего нуля в случае одноразрядного представления). Закодируйте последовательность букв КАБАЧОК таким способом и результат запишите шестнадцатеричным кодом.

6.

Автомат получает на вход четырёхзначное число (число не может начинаться с нуля). По этому числу строится новое число по следующим правилам.

1. Складываются отдельно первая и вторая, вторая и третья, третья и четвёртая цифры заданного числа.

2. Наименьшая из полученных трёх сумм удаляется.

3. Оставшиеся две суммы записываются друг за другом в порядке неубывания без разделителей.

 

Пример. Исходное число: 1984. Суммы: 1 + 9 = 10, 9 + 8 = 17, 8 + 4 = 12. Удаляется 10. Результат: 1217.

Укажите наибольшее число, при обработке которого автомат выдаёт результат 613.

7.

Дан фрагмент электронной таблицы. Из ячейки B2 в одну из ячеек диапазона A1:A4 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились, и числовое значение в этой ячейке стало равным 8. В какую ячейку была скопирована формула? В ответе укажите только одно число — номер строки, в которой расположена ячейка.

 

ABCDE
14321
2= D$3 + $C2432
36543
47654

 

Примечание. Знак $ обозначает абсолютную адресацию.

8.

Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

 

БейсикPython

DIM K, S AS INTEGER

S = 1

K = 0

WHILE K < 13

    S = S + 2 * K

    K = K + 4

WEND

PRINT K+S

s = 1

k = 0

while k < 13:

    s += 2*k

    k += 4

print(k+s)

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

var k, s: integer;

begin

       s:=1;

       k:=0;

      while k < 13 do begin

            s:=s+2*k;

             k:=k+4;

       end;

      write(s+k);

end.

алг

нач

    цел k, s

    s := 1

    k := 0

    нц пока k < 13

        s := s + 2 * k

        k := k + 4

    кц

    вывод s+k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 1, k = 0;

    while (k < 13) {

        s = s + 2 * k;

        k = k + 4;

    }

    cout << s+k << endl;

    return 0;

}

 

9.

Саша скачивает из сети файл размером 60 Мбайт. Скорость передачи первой половины данных составляет 256 Кбит в секунду, а второй — в два раза меньше. Сколько минут будет скачиваться файл?

10.

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём буква X появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?

11.

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

 

БейсикPython

SUB F(n)

    IF n > 2 THEN

        F = F(n - 1) +F(n-2)

    ELSE

        F = 1

    END IF

END SUB

def F(n):

    if n > 2:

        return F(n-1)+ F(n-2)

    else: return 1

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

function F(n: integer): integer;

begin

    if n > 2 then

        F := F(n - 1) + F(n - 2)

    else

        F := 1;

end;

алг цел F(цел n)

нач

если n > 2

то

    знач := F(n - 1)+F(n - 2)

иначе

    знач := 1

все

кон

Си

int F(int n)

{

    if (n > 2)

        return F(n-1) + F(n-2);

    else return 1;

}

 

Чему будет равно значение, вычисленное алгоритмом при выполнении вызова F(5)?

12.

Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют значение 1; младшие биты, отведенные в IP-адресе компьютера для адреса компьютера в подсети, имеют значение 0.

Если маска подсети 255.255.255.192 и IP-адрес компьютера в сети 10.18.134.220, то номер компьютера в сети равен_____

13.

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 6 символов и содержащий только символы из 7-буквенного набора Н, О, Р, С, Т, У, X. В базе данных для хранения сведений о каждом пользователе отведено одинаковое целое число байт, при этом для хранения сведений о 100 пользователях используется 1400 байт. Для каждого пользователя хранятся пароль и дополнительные сведения. Для хранения паролей используют посимвольное кодирование, все символы кодируются одинаковым и минимально возможным количеством бит. Сколько бит отведено для хранения дополнительных сведений о каждом пользователе?

14.

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:

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

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

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

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

Цикл

ПОКА < условие >

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

КОНЕЦ ПОКА

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

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

ЕСЛИ < условие >

ТО команда1

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

КОНЕЦ ЕСЛИ

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

 

Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.

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

 

НАЧАЛО

ПОКАснизу свободно ИЛИ справа свободно

ПОКА справа свободно

вправо

КОНЕЦ ПОКА

вниз

КОНЕЦ ПОКА

КОНЕЦ

15.

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

16.

Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 25, запись которых в двоичной системе счисления оканчивается на 101?

17.

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

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

 

ЗапросНайдено страниц
(в тысячах)
Вебинар50
Информатика80
Ум100
Вебинар|Информатика110
Информатика & Ум30
Вебинар & Информатика & Ум5
Вебинар | Информатика | Ум165

 

Какое количество страниц (в тысячах) будет найдено по запросу Вебинар & Ум?

18.

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».

Для какого наибольшего натурального числа А формула

 

¬ДЕЛ(x, А) → (ДЕЛ(x, 6) → ¬ДЕЛ(x, 4))

 

тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной x)?

19.

Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10.

 

Бейсик Python

s = 27

n = 10

FOR i = 0 TO n-1

    s = s+A(i)-A(i+1)+2

NEXT i

s = 27

n = 10

for i in range(0,n):

    s = s + A[i] - A[i+1]+2

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

s := 27

n := 10

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

    s:=s+A[i]-A[i+1]+2

кц

s := 27;

n := 10;

for i:=0 to n-1 do begin

    s:=s+A[i]-A[i+1]+2

end;

Си++

s = 27;

n = 10;

for (i = 0; i <= n-1; i++) {

    s=s+A[i]-A[i+1]+2;

}

 

Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0] < A[1] < … < A[10].

Какое наибольшее значение может иметь переменная s после выполнения данной программы?

20.

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает числа: a и b. Укажите наибольшее четырехзначное число x, при вводе которого алгоритм печатает сначала 5, а потом 7.

 

БейсикPython

DIM X, Y, A, B AS INTEGER

A = 10

B = 0

INPUT X

WHILE X > 0

    Y = X MOD 10

    X = X \ 10

    IF Y < A THEN A = Y

    IF Y > B THEN B = Y

WEND

PRINT A

PRINT B

a = 10

b = 0

x = int(input())

while x > 0:

    y = x % 10

    x = x // 10

    if y < a:

        a = y

    if y > b:

        b = y

print(a)

print(b)

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

var x, y, a, b: integer;

begin

    a := 10;

    b := 0;

    readln(x);

    while x > 0 do

        begin

            y := x mod 10;

            x := x div 10;

            if y < a then

                a := y;

            if y > b then

                b := y;

        end;

writeln(a);

writeln(b)

end.

алг

нач

цел x, y, a, b

a := 10

b := 0

ввод x

нц пока x > 0

    y := mod(x, 10)

    x := div(x, 10)

    если y < a

        то a := y

    все

    если y > b

        то b := y

    все

кц

вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, y, a, b;

    a = 10;

    b = 0;

    cin >> x;

    while (x > 0)

    {

        y = x % 10;

        x = x / 10;

        if (y < a)

            a = y;

        if (y > b)

            b = y;

    }

    cout << a << endl << b << endl;

}

 

21.

Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт ответ 21. Для Вашего удобства программа приведена на пяти языках программирования.

 

БейсикPython

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) <= K*G(I)

  I = I + 1

WEND

PRINT I

 

FUNCTION F(N)

  F = N * N * N

END FUNCTION

 

FUNCTION G(N)

  G = N * N

END FUNCTION

def f(n):

  return n*n*n

 

def g(n):

  return n*n

 

k = int(input())

i = 1

while f(i) <= k*g(i):

  i += 1

print (i)

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

var

  k, i : longint;

 

function f(n: longint): longint;

begin

  f := n * n * n;

end;

 

function g(n: longint): longint;

begin

  g := n*n;

end;

 

begin

  readln(k);

  i := 1;

  while f(i) <= k*g(i) do

    i := i+1;

  writeln(i)

end.

алг

нач

  цел i, k

  ввод k

  i := 1

  нц пока f(i) <= k*g(i)

    i := i + 1

  кц

  вывод i

кон

 

алг цел f(цел n)

нач

  знач := n * n * n

кон

 

алг цел g(цел n)

нач

  знач := n * n

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

  return n * n * n;

}

 

long g(long n) {

  return n*n;

}

 

int main()

{

  long k, i;

  cin >> k;

  i = 1;

  while (f(i) <= k*g(i))

    i++;

  cout << i << endl;

  return 0;

}

 

22.

У исполнителя Калькулятор две команды, которым присвоены номера:

 

1. прибавь 2,

2. умножь на 5.

 

Первая из них увеличивает число на экране на 2, вторая — увеличивает его в 5 раз.

Программа для Калькулятора — это последовательность команд.

Сколько есть программ, которые число 2 преобразуют в число 50?

23.

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

 

(x1 ∨ x2) ∧ ((x1 ∧ x2) →x3) ∧ ¬ (x1 ∧ y1) = 1

(x2 ∨ x3) ∧ ((x2 ∧ x3) →x4) ∧ ¬ (x2 ∧ y2) = 1

...

(x5 ∨ x6) ∧ ((x5 ∧ x6) →x7) ∧ ¬ (x5 ∧ y5) = 1

(x6 ∨ x7) ∧ ¬(x6 ∧ y6) = 1

x7 ∧ y7 = 0

 

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

24.

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество чётных чисел в исходной последовательности и максимальное чётное число. Если чётных чисел нет, требуется на экран вывести «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.

Дан массив, содержащий 2015 неотрицательных целых чисел. Ямой называется не крайний элемент массива, который меньше обоих своих соседей. Необходимо найти в массиве самую глубокую яму, то есть яму, значение которой минимально. Если в массиве нет ни одной ямы, ответ считается равным 0.

Например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17, 3, 8, есть две ямы – 2 и 3, самая глубокая яма – 2.

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

 

БейсикPython

CONST N=2015

DIM A(N) AS INTEGER

DIM I, J, K AS INTEGER

FOR I = 1 TO N

   INPUT A(I)

NEXT I

END

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

// вание целочисленных

// переменных j, k

a = []

N = 2015 // менять значение N

нельзя

for i in range(0, n):

a.append(int(input()))

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

const

N=2015;

var

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

i, j, k: integer;

begin

for i:=1 to N do

readln(a[i]);

end.

алг

нач

цел N=2015| Изменять значение этой переменной нельзя

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

цел i, j, k

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

ввод a[i]

кц

кон

Си++

#include <iostream>

using namespace std;

#define N 2015

int main(){

int a[N];

int i, j, k;

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

cin >> a[i];

return 0;

}

 

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

26.

Два игрока, Петя и Ваня, играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 4, а во второй - 3 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди, первый ход делает Петя. Ход состоит в том, что игрок или утраивает число камней в какой-то куче, или добавляет 1 камень в какую-то кучу. Игра завершается в тот момент, когда общее количество камней в двух кучах становится не менее 20. Если в момент завершения игры общее число камней в двух кучах не менее 35, то выиграл Ваня, в противном случае - Петя. Кто выигрывает при безошибочной игре обоих игроков? Укажите, стратегию выигрывающего игрока - какой ход он должен сделать в каждой из позиций, которые могут ему встретиться при правильной игре. Докажите, что описанная стратегия - выигрышная.

27.

Дед Мороз и Снегурочка приходят на детские утренники с мешком конфет. Дед Мороз делит конфеты поровну между всеми присутствующими детьми (детей на утреннике никогда не бывает больше 100), а оставшиеся конфеты отдает Снегурочке. Снегурочка каждый раз записывает в блокнот количество полученных конфет. Если конфеты разделились между всеми детьми без остатка, Снегурочка ничего не получает и ничего не записывает. Когда утренники закончились, Деду Морозу стало интересно, какое число чаще всего записывала Снегурочка. Дед Мороз и Снегурочка — волшебные, поэтому число утренников N, на которых они побывали, может быть очень большим. Напишите программу, которая будет решать эту задачу. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию.

 

Вам предлагается два задания с похожими условиями: задание А и задание Б. Вы можете решать оба задания или одно из них по своему выбору. Задание Б более сложное, его решение оценивается выше. Итоговая оценка выставляется как максимальная из оценок за задания А и Б.

 

Задание А. Имеется набор чисел, состоящий из 10 пар положительных целых чисел. В этом варианте задания оценивается только правильность программы, время работы и размер использованной памяти не имеют значения.

Максимальная оценка за правильную программу – 2 балла.

 

Задание Б. Имеется набор данных, состоящий из пар положительных целых чисел. Постарайтесь сделать программу эффективной по времени и используемой памяти (или хотя бы по одной из этих характеристик).

Программа считается эффективной по времени, если время работы программы пропорционально количеству пар чисел N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз.

Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.

Максимальная оценка за правильную программу, эффективную по времени и памяти, — 4 балла.

Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, — 3 балла.

 

Описание входных данных

В первой строке вводится одно целое положительное число — количество утренников N. Каждая из следующих N строк содержит два целых числа: сначала D — количество пришедших на очередной утренник детей, а затем K – количество конфет в мешке Деда Мороза на этом утреннике. Гарантируется выполнение следующих соотношений:

1 ≤ N ≤ 10000

1 ≤ D ≤ 100 (для каждого D)

D ≤ K ≤ 1000 (для каждой пары D, K)

Описание выходных данных

Программа должна вывести одно число — то, которое Снегурочка записывала чаще всего. Если несколько чисел записывались одинаково часто, надо вывести большее из них. Если Снегурочка ни разу ничего не записывала, надо вывести ноль.

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

7

10 58

15 315

20 408

100 1000

32 63

32 63

11 121

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

31