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

1.

Даны числа: 1, 3, 11 и 33. Укажите среди них число, двоичная запись которого содержит ровно 3 единицы.

2.

Логическая функция F задаётся выражением (¬x ≡ z) → (y ≡ (w ∨ x)).

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

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

 

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
000
000
0000

 

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

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

 

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

 

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

3.

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

 

ABCDEF
A217
B248
C43
D8336
E32
F1762

 

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

4.

Таблица 1
IDФамилия_И.О.Пол
2201Каток Л.Р.М
2115Каток Р.С.М
2083Седых А.ИМ
2012Седых И.А.М
2162Седых Я.А.М
2045Сидоров Р.А.М
2094Ветрова В.И.Ж
2056Гоголь Н.В.Ж
2024Лучко А.И.Ж
2171Муджири С.Б.Ж
2011Петрова Р.М.Ж
2140Седых Т.А.Ж
2186Сидорова Е.Р.Ж

Таблица 2
ID_РодителяID_Ребенка
20112083
20112094
20122083
20122094
20242115
20562140
20562162
20832140
20832162
20942186
20942201
21152186
21152201

 

Определите на основании приведенных данных ID дедушки Сидоровой Е. Р.

5.

Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв — из двух бит, для некоторых — из трех). Эти коды представлены в таблице:

 

abcde
1001100110110

 

Какой набор букв закодирован двоичной строкой 1000110110110? Все буквы в последовательности — разные.

6.

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

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

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

Пример. Исходное число: 9575. Суммы: 9 + 5 = 14; 5 + 7 = 12; 7 + 5 = 12. Наибольшие суммы: 14, 12. Результат: 1214.

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

7.

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

 

 Вклад, р. 4 %3 %
Агеев210000021840002249520
Агнесян200000208000214240
Сестров500005200053560
Кучкин230000023920002463760
 Общая сумма  4650000  4836000  4981080 

 

Определите общую сумму вкладов населения в банке в рублях после очередного начисления процентов, если процентная ставка будет составлять 10%.

 

8.

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

 

БейсикPython

DIM S, N AS INTEGER

S = 0

N = 0

WHILE 2*S*S < 123

  S = S + 1

  N = N + 2

WEND

PRINT N

s = 0

n = 0

while 2*s*s < 123:

  s = s + 1

  n = n + 2

print(n)

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

var s, n: integer;

begin

  s := 0;

  n := 0;

  while 2*s*s < 123 do

  begin

    s := s + 1;

    n := n + 2

  end;

  writeln(n)

end.

алг

нач

  цел n, s

  n := 0

  s := 0

  нц пока 2*s*s < 123

    s := s + 1

    n := n + 2

  кц

  вывод n

кон

Си++

#include <iostream>

using namespace std;

int main()

{

  int s = 0, n = 0;

  while (2*s*s < 123) {

    s = s + 1;

    n = n + 2;

  }

  cout << n << endl;

  return 0;

}

 

9.

Автоматическая фотокамера производит растровые изображения размером 600 на 400 пикселей. При этом объём файла с изображением не может превышать 120 Кбайт, упаковка данных не производится. Какое максимальное количество цветов можно использовать в палитре?

10.

Все 5-буквенные слова, составленные из букв Е, Ж, И, записаны в алфавитном порядке и пронумерованы.

 

Вот начало списка:

1. ЕЕЕЕЕ

2. ЕЕЕЕЖ

3. ЕЕЕЕИ

4. ЕЕЕЖЕ

……

Запишите слово, которое стоит под номером 238.

11.

Ниже записаны две рекурсивные функции, F и G:

function F(n: integer): integer;

 begin

  if (n > 2) then F := F(n - 1) + G(n - 1) + F(n-2)

 else

F := n;

 end;

function G(n: integer): integer;

 begin

  if (n > 2) then G := G(n - 1) + F(n - 1) + G(n-2)

 else

G := n;

 end;

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

12.

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

 

IP-адрес узла: 130.132.131.64

Маска: 255.255.192.0

 

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

 

ABCDEFGH
064128130131132192255

 

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

 

ABCDEFGH
1281682558127017192

 

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

13.

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

14.

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

 

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

 

ПОКА условие

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

КОНЕЦ ПОКА

 

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

 

ЕСЛИ условие

ТО команда1

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

КОНЕЦ ЕСЛИ

 

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

 

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

 

НАЧАЛО

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

ЕСЛИ слева свободно

ТО влево

ИНАЧЕ вниз

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

15.

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

16.

В системе счисления с некоторым основанием десятичное число 18 записывается в виде 30. Укажите это основание.

17.

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

 

ЗапросНайдено страниц (в тысячах)
Нью-Йорк & Бостон256
Нью-Йорк & Бостон & Чикаго198
Нью-Йорк & (Бостон | Чикаго)427

 

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

 

Нью-Йорк & Чикаго?

 

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

18.

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

 

ДЕЛ(x, А) → (¬ДЕЛ(x, 21) + ДЕЛ(x, 35))

 

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

Задание К. Ю. Полякова

19.

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

 

БейсикPython

s = 0

n = 10

FOR i = 3 TO n

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

NEXT i

s = 0

n = 10

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

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

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

s := 0;

n := 10;

for i:=3 to n do begin

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

end;

s := 0

n := 10

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

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

кц

Си++

s = 0;

n = 10;

for (i = 3; i <= n; i++) {

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

}

 

20.

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

 

 

БейсикPython

DIM X, A, B, D AS INTEGER

INPUT X

A = 0: B = 10

WHILE X > 0

    D = X MOD 6

    IF D > A THEN A = D

    IF D < B THEN B = D

    X = X \ 6

WEND

PRINT A+B

 

x = int(input())

a=0; b=10

while x > 0:

    d = x % 6

    if d > a: a = d

    if d < b: b = d

    x = x // 6

print(a+b)

 

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

var x, a, b, d: longint;

begin

    readln(x);

    a := 0; b := 10;

    while x > 0 do begin

        d := x mod 6

        if d > a then a := d;

        if d < b then b := d;

        x := x div 6

    end;

    writeln(a+b)

end.

 

алг

нач

    цел x, a, b, d

    ввод x

    a := 0; b := 10

    нц пока x > 0

        d := mod(x,6)

        если d > a то a := d все

        если d < b то b := d все

        x := div(x,6)

    кц

    вывод a+b

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b, d;

    cin >> x;

    a = 0; b = 10;

    while (x > 0) {

        d = x % 6;

        if (d > a) a = d;

        if (d < b) b = d;

        x = x / 6;

    }

    cout << a+b << endl;

    return 0;

}

 

 

21.

Напишите в ответе число, которое выведет программа в качестве ответа.

 

 

БейсикPython

DIM K, I AS LONG

I = 1

WHILE F(I) <= G(I)

    I = I*2

WEND

PRINT I

 

FUNCTION F(N)

    F = N * N

END FUNCTION

 

FUNCTION G(N)

    G = N*2000 + 3

END FUNCTION

def f(n):

    return n*n

 

def g(n):

    return n*2000 + 3

 

i = 1

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

    i*=2

print(i)

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

var

    k, i : longint;

 

function f(n: longint): longint;

begin

    f := n * n;

end;

 

function g(n: longint): longint;

begin

    g := n*2000 + 3;

end;

 

begin

    i := 1;

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

        i := i*2;

    writeln(i)

end.

алг

нач

    цел i, k

    i := 1

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

        i := i*2

    кц

    вывод i

кон

 

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

нач

    знач := n * n

кон

 

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

нач

    знач := n*2000 + 3

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

    return n * n;

}

 

long g(long n) {

    return n*2000 + 3;

}

 

int main()

{

    long k, i;

    i = 1;

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

        i = i*2;

    cout << i << endl;

    return 0;

}

 

22.

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

 

1. прибавь 1,

2. прибавь 3.

 

Первая из них увеличивает на 1 число на экране, вторая увеличивает это число на 3.

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

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

23.

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

 

(x1 ∧ x2) ∨ (¬x1 ∧ ¬x2) ∨ (¬x3 ∧ x4) ∨ (x3 ∧ ¬x4) = 1

(x3 ∧ x4) ∨ (¬x3 ∧ ¬x4) ∨ (¬x5 ∧ x6) ∨ (x5 ∧ ¬x6) = 1

...

(x7 ∧ x8) ∨ (¬x7 ∧ ¬x8) ∨ (¬x9 ∧ x10) ∨ (x9 ∧ ¬x10) = 1

 

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

24.

Дано натуральное число N (N ≤ 109). Необходимо найти и вывести наибольшую чётную цифру в десятичной записи N или вывести сообщение «NO», если таких цифр нет.

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

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N, D, M, T AS INTEGER

INPUT N

T = 0

M = T

WHILE N > 1

    D = N MOD 10

    IF D MOD 2 = 0 AND D > M THEN

        M = M + D

    END IF

    N = N \ 10

WEND

IF M = T THEN

    PRINT "NO"

ELSE

    PRINT M

END IF

END

N = int(input())

t = 0

m = t

while N > 1:

    d = N % 10

    if d%2 == 0 and d > m:

        m = m + d

    N = N // 10

if m == t:

    print("NO")

else:

    print(m)

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

var N, d, m, t: integer;

begin

    read(N);

    t := 0;

    m := t;

    while N > 1 do begin

        d := N mod 10;

        if (d mod 2 = 0) and (d>m) then

            m := m + d;

        N := N div 10

    end;

    if m = t

        then writeln('NO')

        else writeln(m)

end.

алг

нач

    цел N, d, m, t

    ввод N

     t := 0

     m := t

     нц пока N > 1

        d := mod(N,10)

        если mod(d,2)=0 и d>m то

            m := m + d

        все

        N := div(N,10)

     кц

     если m = t

        то вывод "NO"

        иначе вывод m

    все

кон

С++

#include <iostream>

using namespace std;

int main(){

    int N, d, m, t;

    cin >> N;

    t = 0;

    m = t;

    while (N > 1) {

        d = N % 10;

        if (d % 2 == 0 && d > m)

            m = m + d;

        N = N / 10;

    }

    if (m == t)

        cout << "NO";

    else

        cout << m;

    return 0;

}

 

 

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

1. Напишите, что выведет эта программа при вводе N = 864.

2. Какое наибольшее число может стать результатом работы этой программы? Приведите пример числа N, при вводе которого программа выведет такой ответ.

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

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

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

25.

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

 

Бейсик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, −5). Ход состоит в том, что игрок перемещает фишку из точки с координатами (x, y) в одну из трёх точек: или в точку с координатами (x + 3, y), или в точку с координатами (x, y + 4), или в точку с координатами (x, y + 5). Выигрывает игрок, после хода которого расстояние по прямой от фишки до точки с координатами (0, 0) больше 9 единиц. Кто выиграет при безошибочной игре обоих игроков — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.

Постройте дерево партии для выигрышной стратегии (в виде рисунка или таблицы).

27.

Радиотелескоп пытается получать и анализировать сигналы, поступающие из различных участков космоса, при этом различные шумы переводятся в последовательность вещественных неотрицательных чисел, заданных с точностью до одного знака после десятичной точки. Чисел может быть очень много, но не может быть меньше трёх. Все числа не превосходят 1000000.

 

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

 

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

 

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

Задание Б является усложнённым вариантом задания А, оно содержит дополнительные требования к программе.

 

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

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

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

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

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

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

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

 

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

6

123.4

0.2

200.2

0.0

6.7

218.0

 

Программа должна вывести в одной строке сначала количество элементов в основном множестве, а затем — его минимальный элемент.

 

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