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

1.

Чему равна сумма чисел 305 и 418? Результат запишите в двоичной системе счисления.

2.

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

Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции 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.

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

 

ABCDEF
A157111
B1
C523
D7232
E139
F11329

 

 

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

4.

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

 

 Сотрудник  Номер машины 
 Громов Е. Ж. 
 24355 
 Громов Е. Ж. 
 26777 
 Бурьянов Н. Д. 
 11111 
 Бурьянов Н. Д. 
 22222 
 Поклов К. М. 
 12212 
 Поклов К. М. 
 59875 
 Поклов К. М. 
 11133 
 Усов А. А. 
 75444 
 Кир Т. О. 
 34543 

 Сотрудник  Число  Время 
 Громов Е. Ж.  3 июня 
 10:20 
 Громов Е. Ж.  1 июня 
 09:20 
 Громов Е. Ж.  2 июня 
 09:02 
 Бурьянов Н. Д.  1 июня 
 11:24 
 Усов А. А.  1 июня 
 11:52 
 Поклов К. М.  2 июня 
 09:52 
 Кир Т. О.  2 июня 
 09:12 
 Бурьянов Н. Д.  2 июня 
 15:20 
 Кир Т. О.  3 июня 
 12:42 

 

Руководствуясь приведенными таблицами, определите максимально возможное число сотрудников, приехавших на автомобилях с четными номерами 2 июня с 9:00 до 10:00.

5.

Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для буквы А использовали кодовое слово 0; для буквы Б – кодовое слово 10. Какова наименьшая возможная сумма длин всех шести кодовых слов?

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

6.

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

Вперед N – Кузнечик прыгает вперед на N единиц

Назад M – Кузнечик прыгает назад на M единиц

Переменные N и M могут принимать любые целые положительные значения. Кузнечик выполнил программу из 20 команд, в которой команд «Назад 4» на 4 меньше, чем команд «Вперед 3» (других команд в программе нет). На какую одну команду можно заменить эту программу?

7.

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

 

ABC
12=A1+1
2=C1-B1=(3*B1+C1)/3=B2+A1

 

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

8.

Запишите значение переменной а после выполнения фрагмента алгоритма:

 

*Примечание: знаком := обозначена операция присваивания. В бланк ответов впишите только число.

9.

Сколько секунд потребуется модему передающему информацию со скоростью 32000 бит/с, чтобы передать 24─цветное растровое изображение размером 800 на 600 пикселей, при условии что цвет кодируется минимально возможным количеством бит.

10.

Азбука Морзе позволяет кодировать символы для сообщений по радиосвязи, задавая комбинацию точек и тире. Сколько различных символов (цифр, букв, знаков пунктуации и т. д.) можно закодировать, используя код азбуки Морзе длиной не менее четырёх и не более пяти сигналов (точек и тире)?

11.

Ниже на пяти языках программирования записана рекурсивная функция (процедура) F.

 

БейсикPython

SUB F(n)

  PRINT n,

  IF n >= 3 THEN

    F(n - 1)

    F(n - 3)

  END IF

END SUB

def F(n):

    print(n)

    if n >= 3:

        F(n - 1)

        F(n - 3)

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

procedure F(n: integer);

begin

  write(n);

  if n >= 3 then

  begin

    F(n - 1);

    F(n - 3)

  end

end;

алг F(цел n)

нач

  вывод n

  если n >= 3 то

    F(n - 1)

    F(n - 3)

  все

кон

Си

void F(int n) {

    cout « n « endl;

    if (n >= 3) {

        F(n - 1);

        F(n - 3);

    }

}

 

 

Что выведет программа при вызове F(5)? В ответе запишите последовательность выведенных цифр слитно (без пробелов).

12.

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и его маске. По заданным IP-адресу узла и маске определите адрес сети:

 

IP-адрес: 145.92.137.88 Маска: 255.255.240.0

 

При записи ответа выберите из приведенных в таблице чисел 4 фрагмента четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без точек.

 

ABCDEFGH
01452551371282408892

 

Пример. Пусть искомый адрес сети 192.168.128.0 и дана таблица

 

ABCDEFGH
1281682558127017192

 

В этом случае правильный ответ будет HBAF.

13.

В одной небольшой стране Индивидуальные Номера Налогоплательщиков представляют собой целые числа от 1 до 4000, На некотором предприятии в этой стране работают 300 человек. Главный бухгалтер этого предприятия переписала ИНН всех сотрудников последовательно без разделителей в один файл, при этом использовалось представление целых чисел с одинаковым минимально возможным количеством бит. Оцените объем получившегося файла. (Ответ дайте в байтах.)

14.

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a, b), где a, b – целые числа. Эта команда перемещает Чертёжника из точки с координатами (x, y) в точку с координатами (x + a; y + b).

Например, если Чертёжник находится в точке с координатами (4, 2), то команда сместиться на (2, -3) переместит Чертёжника в точку (6, -1).

Цикл

    ПОВТОРИ число РАЗ

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

    КОНЕЦ ПОВТОРИ

означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм (буквами n, a, b обозначены неизвестные числа, n>1):

НАЧАЛО

    сместиться на (60, 100)

    ПОВТОРИ n РАЗ

        сместиться на (a, b)

        сместиться на (33, 44)

    КОНЕЦ ПОВТОРИ

    сместиться на (13, 200)

    сместиться на (-1, 60)

КОНЕЦ

Укажите наибольшее возможное значение числа n, для которого найдутся такие значения чисел a и b, что после выполнения программы Чертёжник возвратится в исходную точку.

15.

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

16.

Значение арифметического выражения: 4910 + 730 – 49 — записали в системе счисления с основанием 7. Сколько цифр «6» содержится в этой записи?

17.

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

 

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

 

ЗапросНайдено страниц
(в тысячах)
Ильф & Петров & Остап800
Ильф & Петров & Бендер600
Ильф & Петров & Бендер & Остап500

 

Какое количество страниц (в тыс.) будет найдено по запросу

 

 

(Ильф & Петров & Остап)|(Ильф & Петров & Бендер)?

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

18.

Элементами множества А являются натуральные числа. Известно, что выражение

 

(x ∈ {2, 4, 6, 8, 10, 12}) → (((x ∈ {3, 6, 9, 12, 15}) ∧ ¬(x ∈ A)) → ¬(x ∈ {2, 4, 6, 8, 10, 12}))

 

истинно (т. е. принимает значение 1) при любом значении переменной х. Определите наименьшее возможное значение суммы элементов множества A.

19.

Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A; в представленном фрагменте обрабатываются элементы массива с индексами от 1 до 10.

 

БейсикPython

n = 10

d = 6

FOR j = 1 TO d

  s = A(1)

  FOR i = 1 TO n-1

    A(i) = A(i+1)

  NEXT i

  A(10) = s

NEXT j

n = 10

d = 6

for j in range(1,d+1):

  s = A[1]

  for i in range(1,n):

    A[i] = A[i+1]

  A[10] = s

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

n := 10;

d := 6;

for j:=1 to d do begin

  s := A[1];

  for i:=1 to n-1 do begin

    A[i] := A[i+1];

  end;

  A[10] := s;

end;

n := 10

d := 6

нц для j от 1 до d

  s := A[1]

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

    A[i] := A[i+1]

  кц

  A[10]:= s

кц

Си++

n = 10;

d = 6;

for (j = 1; j <= d; j++) {

  s = A[1];

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

    A[i] = A[i+1];

  }

  A[10] = s;

}

 

Перед началом выполнения программы эти элементы массива имели значения 0, 1, 2, 3, 4, 5, 4, 3, 2, 1 (то есть A[1] = 0; A[2] = 1; …; A[10] = 1).

Значение какого из этих элементов массива будет наибольшим после выполнения фрагмента программы? В ответе укажите индекс элемента – число от 1 до 10.

20.

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 3, а потом 6.

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

M = M + 1

IF X MOD 2 <> 0 THEN

    L = L + 1

ENDIF

X = X \ 2

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

    M = M + 1

    if x % 2 != 0:

        L = L + 1

    x = x // 2

print(L)

print(M)

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

var x, L, M: integer;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        M := M + 1;

        if x mod 2 <> 0 then

            L := L + 1;

        x := x div 2;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        M := M + 1

        если mod(x,2) <> 0

            то

                L := L + 1

        все

        x := div(x,2)

    кц

    вывод L, нс, M

кон

Си++

 

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0){

        M = M + 1;

        if(x % 2 != 0){

            L = L + 1;

        }

        x = x / 2;

    }

    cout << L << endl << M endl;

}

 

21.

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

 

БейсикPython

DIM K, I AS LONG

INPUT K

I = 20

WHILE F(I) > K

    I = I - 1

WEND

PRINT I

FUNCTION F(N)

    F = N * N * N

END FUNCTION

def f(n):

    return n * n * n

k = int(input())

i = 20

while f(i) > k:

    i -= 1

print(i)

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

var

    k, i : longint;

function f(n: longint): longint;

begin

    f := n * n * n

end;

begin

    readln(k);

    i := 20;

    while f(i) > k do

        i := i-1;

    writeln(i)

end.

алг

нач

    цел k, i

    ввод k

    i := 20

    нц пока f(i) > k

        i := i - 1

    кц

    вывод i

кон

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

нач

    знач := n * n * n

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

return n * n * n;

}

int main()

{

    long k, i;

    cin >> k;

    i = 20;

    while (f(i) > k) --i;

    cout << i;

    return 0;

}

 

22.

У исполнителя Множик есть две команды:

 

1. умножь на 8,

2. подели на 2.

 

Первая из них увеличивает число на экране в 8 раз, вторая – уменьшает его в 2 раза.

Программа для Множика – это последовательность команд. Сколько различных чисел можно получить из числа 512 с помощью программы, которая содержит ровно 8 команд?

23.

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

(x1→x2) ∧ (y1→y2) ∧ (y1→x1) = 1

(x2→x3) ∧ (y2→y3) ∧ (y2→x2) = 1

(x8→x9) ∧ (y8→y9) ∧ (y8→x8) = 1

(y9→x9) = 1

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

24.

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

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

 

Бейсик Python

mx = 0

s = 0

FOR I = 1 TO 4

    INPUT x

    IF x < 0 THEN

        s = x

    END IF

    IF x > mx THEN

        mx = x

    END IF

NEXT I

PRINT s

PRINT mx

mx = 0

s = 0

for i in range(1, 5):

    x = int(input())

    if x < 0:

        s = x

    if x > mx:

        mx = x

print(s)

print(mx)

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

алг

нач

    цел s,i,x,mx

    mx := 0

    s := 0

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

        ввод x

        если x < 0 то

            s := x

        все

        если x > mx то

            mx := x

        все

    кц

вывод s, нс

вывод mx

кон

var s,i,x,mx: integer;

begin

    mx := 0;

    s := 0;

    for i := 1 to 4 do

    begin

        read (x);

        if x < 0 then

            s := x;

        if x > mx then

            mx := x;

    end;

    writeln(s);

    writeln(mx);

end.

Си++

#include <iostream>

using namespace std;

int main(void)

{

    int s, i, x, mx;

    mx = 0;

    s = 0;

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

    {

        cin >> x;

        if (x < 0)

        {

            s = x;

        }

        if (x > mx)

        {

            mx = x;

        }

    }

    cout << s << "\n";

    cout << mx << "\n";

}

 

 

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

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

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

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

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

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

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

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

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

25.

Дан массив, содержащий 2017 положительных целых чисел, не превышающих 1000. Необходимо найти и вывести максимальный из тех элементов этого массива, восьмеричная запись которых содержит не менее четырёх цифр и оканчивается цифрой 4. Если таких чисел в массиве нет, ответ считается равным нулю. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

 

БейсикPython

CONST N = 2017

DIM A (N) AS INTEGER

DIM I, M, K AS INTEGER

FOR I = 1 TO N

    INPUT A(I)

NEXT I

...

END

# допускается также

# использовать две

# целочисленные переменные m и k

a = []

n = 2017

for i in range(0, n):

    a.append(int(input()))

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

const

    N = 2017;

var

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

    i, m, k: integer;

begin

    for i := 1 to N do

        readln(a[i]);

    ...

end.

алг

нач

    цел N = 2017

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

    цел i, m, k

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

        ввод a[i]

    кц

    ...

кон

Си++

#include <iostream>

using namespace std;

#define N 2017

int main() {

    int a[N];

    int i, m, k;

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

        cin >> a[i];

    ... return 0;

}

 

 

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

26.

Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 3, а во второй — 6 камней. У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит в том, что игрок или удваивает число камней в какой-то куче, или добавляет 2 камня в какую-то кучу. Выигрывает игрок, после хода которого общее число камней в двух кучах становится не менее 24 камней. Кто выигрывает при безошибочной игре обоих игроков — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.

27.

Дан список точек плоскости с целочисленными координатами. Необходимо определить:

 

1) номер координатной четверти K, в которой находится больше всего точек;

2) точку A в этой четверти, наименее удалённую от осей координат;

3) расстояние R от этой точки до ближайшей оси.

 

Если в нескольких четвертях расположено одинаковое количество точек, следует выбрать ту четверть, в которой величина R меньше. При равенстве и количества точек, и величины R необходимо выбрать четверть с меньшим номером K. Если в выбранной четверти несколько точек находятся на одинаковом минимальном расстоянии от осей координат, нужно выбрать первую по списку. Точки, хотя бы одна из координат которых равна нулю, считаются не принадлежащими ни одной четверти и не рассматриваются.

 

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

 

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

В первой строке вводится одно целое положительное число - количество точек N.

Каждая из следующих N строк содержит координаты очередной точки - два целых числа (первое — координата x, второе — координата у).

 

 

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

Программа должна вывести номер выбранной четверти K, количество точек в ней M, координаты выбранной точки A и минимальное расстояние R по образцу, приведённому ниже в примере.

 

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

7

−3 4

1 2

1 1

0 4

−2 −3

−6 8

−12 1

 

 

 

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

K = 2

M = 3

A = (−12, 1)

R = 1

 

Примечание.

Считайте, что во входных данных имеется хотя бы одна точка, не лежащая на осях координат.