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

1.

Дано А = A716, B = 2518. Найдите сумму A + B. Ответ укажите в двоичной системе.

2.

Логическая функция F задаётся выражением z ∧ ¬y ∧ (w → x). На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

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

 

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
10001
10101
10111

 

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

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

 

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

 

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

3.

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

 

П1П2П3П4П5П6П7П8
П1152018
П21525
П3252422
П42012
П5131617
П6241315
П71216
П818221715

 

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

4.

Ниже приведены фрагменты таблиц базы данных канцелярского магазина:

 

 Изделие  Артикул 
 Авторучка 
 1948 
 Фломастер 
 2537 
 Карандаш 
 3647 
 Фломастер 
 4758 
 Авторучка 
 5748 
 Карандаш 
 8457 

 Артикул  Размер  Цвет  Цена 
 8457 
 маленький  красный 
 5 
 2537 
 большой  синий 
 9 
 5748 
 большой  синий 
 8 
 3647 
 большой  синий 
 8 
 4758 
 маленький  зелёный 
 5 
 3647 
 большой  зелёный 
 9 
 1948 
 маленький  синий 
 6 
 3647 
 большой  красный 
 8 
 1948 
 маленький  красный 
 6 

 

Сколько разных карандашей продаётся в магазине?

5.

По каналу связи передаются сообщения, содержащие только шесть букв: А, B, C, D, E, F. Для передачи используется неравномерный двоичный код, удовлетворяющий условию Фано. Для букв A, B, C используются такие кодовые слова: А – 11, B – 101, C – 0. Какова наименьшая возможная суммарная длина всех кодовых слов?

 

Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.

6.

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1) Строится двоичная запись числа N.

2) К этой записи дописываются справа ещё два разряда по следующему правилу:

     а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;

     б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.

Укажите минимальное число R, которое превышает число 83 и может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.

7.

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

 

ТЦЯнварьФевральМартАпрель
Продано,
штук
Цена,
руб.
Продано,
штук
Цена,
руб.
Продано,
штук
Цена,
руб.
Продано,
штук
Цена,
руб.
Эдельвейс514117515415
Покупочка613216611414
Кошелек217514415118
Солнечный812713711713
 Продано всего 21152216
 Средняя цена 14151315

 

Известно, что весь поступивший от поставщика в текущем месяце товар реализуется в этом же месяце.

В каком месяце выручка поставщика данного товара была максимальна?

8.

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

 

 

БейсикPython

DIM N, S AS INTEGER

N = 1

S = 0

WHILE N <= 101

    S = S + 7

    N = N + 1

WEND

PRINT S

n = 1

s = 0

while n <= 101:

    s += 7

    n += 1

print(s)

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

var n, s: integer;

begin

    n := 1;

    s := 0;

    while n <= 101 do

    begin

        s := s + 7;

        n := n + 1;

    end;

    writeln(s);

end.

алг

нач

    цел n, s

    n := 1

    s := 0

    нц пока n <= 101

        s := s + 7

        n := n + 1

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int n, s;

    n = 1, s = 0;

    while (n <= 101) {

        s = s + 7;

        n = n + 1;

    }

    cout << s << endl;

    return 0;

}

 

9.

Стереоаудиофайл передается со скоростью 32 000 бит/с. Файл был записан при среднем качестве звука: глубина кодирования – 16 бит, частота дискретизации – 48 000 измерений в секунду, время записи ─ 90 сек.Сколько времени будет передаваться файл? Время укажите в секундах.

10.

Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Вот начало списка:

 

1. ААААА

2. ААААО

3. ААААУ

4. АААОА

……

 

Запишите слово, которое стоит на 210-м месте от начала списка.

11.

Ниже на пяти языках программирования записан рекурсивный алгоритм 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)?

12.

В терминологии сетей TCP/IP маской подсети называется 32-разрядное двоичное число, определяющее, какие именно разряды IP-адреса компьютера являются общими для всей подсети - в этих разрядах маски стоит 1. Обычно маски записываются в виде четверки десятичных чисел - по тем же правилам, что и IP-адреса. Для некоторой подсети используется маска 255.255.255.192. Сколько различных адресов компьютеров теоретически допускает эта маска, если два адреса (адрес сети и широковещательный) не используют?

13.

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

14.

Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды

заменить (111, 27)

преобразует строку 05111150 в строку 0527150.

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.

Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие

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

КОНЕЦ ПОКА

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

 

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 77 единиц?

 

НАЧАЛО

    ПОКА нашлось (11111)

        заменить (222, 1)

        заменить (111, 2)

    КОНЕЦ ПОКА

КОНЕЦ

15.

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

16.

В какой системе счисления выполняется равенство 12 · 13 = 222?

В ответе укажите число – основание системы счисления.

17.

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

 

ЗапросНайдено страниц, тыс.
Новосибирск & (Красноярск & Хабаровск | Норильск)570
Новосибирск & Норильск214
Новосибирск & Красноярск & Хабаровск & Норильск68

 

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

 

Новосибирск & Красноярск & Хабаровск?

 

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

18.

Элементами множеств А, P, Q являются натуральные числа, причём P = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, Q = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30}. Известно, что выражение

 

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

 

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

19.

В программе описан двухмерный целочисленный массив A [1..6,1..6]. Ниже представлен фрагмент этой программы, в котором изменяются значения элементов массива.

 

БейсикPython

FOR n = 1 TO 6

    FOR m = 1 TO 6

        A(n,m) = A(m,n)+2*n-m

    NEXT m

NEXT n

for n in range(1, 7):

    for m in range(1, 7):

        A[n,m] = A[m,n]+2*n-m

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

for n:= 1 to 6 do

    for m:=1 to 6 do begin

        A[n,m]:= A[m,n]+2*n-m;

    end;

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

    нц для m от 1 до 6

        A[n,m]:= A[m,n]+2*n-m

    кц

кц

Си++

for (n = 1; n <= 6; n++) {

    for (m = 1; m <= 6; m++) {

        A[n][m]= A[m][n]+2*n-m;

    }

}

 

 

До выполнения данного фрагмента программы значение A[4,3] было равно 10, а значение A[3,4] было равно 15. Чему будет равно значение A[4,3] после выполнения этого фрагмента программы?

20.

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 150. Укажите наименьшее такое (т. е. большее 150) число x, при вводе которого алгоритм печатает 30.

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 2*X-30

M = 2*X+30

WHILE L <> M

  IF L > M THEN

    L = L - M

  ELSE

    M = M - L

  END IF

WEND

PRINT M

x = int(input())

L = 2*x-30

M = 2*x+30

while L != M:

  if L > M:

    L = L - M

  else:

    M = M - L

print(M)

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

var x, L, M: integer;

begin

  readln(x);

  L := 2*x-30;

  M := 2*x+30;

  while L <> M do begin

    if L > M then

      L := L - M

    else

      M := M - L;

  end;

  writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 2*x-30

    M := 2*x+30

    нц пока L <> M

      если L > M

        то

          L := L - M

        иначе

          M := M - L

      все

    кц

    вывод M

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 2*x-30;

    M = 2*x+30;

    while (L != M) {

      if (L > M)

        L = L - M;

      else

        M = M - L;

    }

    cout « M « endl;

    return 0;

}

 

21.

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

 

 

БейсикПаскаль

DIM A, B, T, M, R AS INTEGER

A =-20: B = 20

M = A: R = F(А)

FOR T = A TO B

    IF F(T) < R THEN

        M = T

        R = F(T)

    END IF

NEXT T

PRINT R

FUNCTION F(x)

    F = 9*(x-15)*(x+17)+2

END FUNCTION

var a,b,t,M,R: integer;

    Function F(x:integer): integer;

        begin

            F := 9*(x-15)*(x+17)+2

        end;

begin

    a :=-20; b := 20;

    M := a; R := F(a);

    for t := a to b do begin

        if (F(t) < R) then begin

            M := t;

            R := F(t)

        end

    end;

    write(R)

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int F(int x)

{

return 9*(x-15)*(x+17)+2;

}

int main()

{

    int a, b, t, M, R;

    a =-20; b = 20;

    M = a; R = F(a);

    for (t = a; t <= b; t++) {

        if (F(t) < R) {

            M = t; R = F(t);

        }

    }

    cout « R « endl;

}

алг

нач

цел a, b, t, M, R

a :=-20; b := 20

M := a; R := F(a)

нц для t от a до b

если F(t) < R

то

M := t; R := F(t)

все

кц

вывод R

кон

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

нач

знач := 9*(x-15)*(x+17)+2

кон

Python

def f(x):

    return 9*(x-15)*(x+17)+2

a =-20

b = 20

M = a

R = F(a)

for t in range(a, b+1):

    if (f(t) < R):

        M = t

        R = f(t);

print(R)

 

22.

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

 

1. Вычти 2

2. Вычти 5

 

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

23.

Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, которые удовлетворяют всем перечисленным ниже условиям?

 

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

(¬x1 ∧ y1 ∧ z1) ∨ (x1 ∧ ¬y1 ∧ z1) ∨ (x1 ∧ y1 ∧ ¬z1) = 1

(¬x2 ∧ y2 ∧ z2) ∨ (x2 ∧ ¬y2 ∧ z2) ∨ (x2 ∧ y2 ∧ ¬z2) = 1

(¬x3 ∧ y3 ∧ z3) ∨ (x3 ∧ ¬y3 ∧ z3) ∨ (x3 ∧ y3 ∧ ¬z3) = 1

(¬x4 ∧ y4 ∧ z4) ∨ (x4 ∧ ¬y4 ∧ z4) ∨ (x4 ∧ y4 ∧ ¬z4) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных

x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

24.

Дано натуральное число A > 0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A.

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

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

 

 

БейсикPython

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = 1

WHILE S <= A

    S = S + K*(K+1)

    K = K + 1

WEND

PRINT K

END

a = int(input())

s = 0

k = 1

while s <= a:

    s = s + k*(k+1)

    k = k + 1

print(k)

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

var a, s, k: integer;

begin

    read(a);

    s := 0;

    k := 1;

    while s <= a do begin

        s := s+k*(k+1);

        k := k+1;

    end;

    writeln(k)

end.

алг

нач

    цел a, s, k

    ввод a

    s := 0

    k := 1

    нц пока s <= a

        s := s+k*(k+1)

        k := k+1

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int a, s, k;

    cin >> a;

    s = 0;

    k = 1;

    while (s <= a) {

        s = s+k*(k+1);

        k = k+1;

    }

    cout « k « endl;

    return 0;

}

 

 

 

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

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

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

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

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

25.

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

 

 

БейсикPython

CONST N = 40

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 = 40

for i in range(n):

     a.append(int(input()))

...

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

const n = 40;

var

    a: array [0..n-1] of integer;

     i, j, k: integer;

begin

    for i := 0 to n-1 do

        readln(a[i]);

     ...

end.

алг

нач

цел N = 40

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

цел i, j, k

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

ввод a[i]

кц

...

кон

Си++

#include <iostream>

using namespace std;

#define n 40

     int main() {

     int a[n]; int i, j, k;

     for (i = 0; i < n; i++) std::cin >> a[i];

    ...

     return 0;

}

 

26.

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может убрать из одной из куч один камень или уменьшить количество камней в куче в два раза (если количество камней в куче нечётно, остаётся на 1 камень больше, чем убирается). Например, пусть в одной куче 6, а в другой 9 камней; такую позицию мы будем обозначать (6, 9). За один ход из позиции (6, 9) можно получить любую из четырёх позиций: (5, 9), (3, 9), (6, 8), (6, 5).

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

В начальный момент в первой куче было 10 камней, во второй куче — S камней, S > 10.

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

Выполните следующие задания.

Задание 1.

Назовите все значения S, при которых Петя может выиграть первым ходом.

Задание 2.

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

Задание 3.

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

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

27.

На вход программе (как вариант, из входного файла text.dat) подаётся текст на английском языке. Ввод этих символов заканчивается точкой (другие символы, отличные от «.» во входных данных отсутствуют; в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять и выводить на экран, какая английская буква встречается во входной последовательности чаще всего и сколько именно раз. Строчные и прописные буквы при этом не различаются. Если таких букв несколько, то программа должна выводить на экран ту из них, которая стоит по алфавиту раньше.

Например, пусть файл содержит следующую информацию:

It is not a simple task. Yes!

Тогда чаще всего встречаются буквы I, S, T. (слово Yes в подсчете не участвует, так как расположено после точки). Следовательно, в данном случае, программа должна вывести

I 3.