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

1.

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

2.

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

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

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

 

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

 

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

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

 

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

 

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

3.

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

 

П1П2П3П4П5П6П7
П14510
П2454055
П31560
П410402035
П51555
П65560205545
П73545

 

 

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

4.

В фрагменте базы данных представлены сведения о родственных отношениях.

 

Таблица 1
IDФамилия_И.О.Пол
1108Козак Е.Р.Ж
1010Котова М.С.Ж
1047Лацис Н.Б.Ж
1037Белых С.Б.Ж
1083Петрич В.И.Ж
1025Саенко А.И.Ж
1071Белых А.И.М
1012Белых И.А.М
1098Белых Т.А.М
1096Белых Я.А.М
1051Мугабе Р.ХМ
1121Петрич Л.Р.М
1086Петрич Р.С.М

Таблица 2
ID_РодителяID_Ребенка
10101071
10121071
10101083
10121083
10251086
10471096
10711096
10471098
10711098
10831108
10861108
10831121
10861121

 

Определите на основании приведенных данных ID внучки Белых И. А.

 

5.

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

6.

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

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

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

Переменные N и M могут принимать любые целые положительные значения. Известно, что Кузнечик выполнил программу из 50 команд, в которой команд “Назад 2” на 12 больше, чем команд “Вперед 3”. Других команд в программе не было. На какую одну команду можно заменить эту программу, чтобы Кузнечик оказался в той же точке, что и после выполнения программы?

7.

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

Вторая диаграмма отражает количество человек, знающих только один язык, только два языка или все три иностранных языка.

Определите количество человек, владеющих одновременно английским и немецким, но не говорящих по-французски.

8.

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

 

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

9.

Текстовый документ, состоящий из 3072 символов, хранился в 8-битной кодировке КОИ-8. Этот документ был преобразован в 16-битную кодировку Unicode. Укажите, какое дополнительное количество Кбайт потребуется для хранения документа. В ответе запишите только число.

10.

Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 4. Сколько различных вариантов шифра можно задать, если известно, что цифра 1 может встречаться ровно два раза, а каждая из других допустимых цифр может встречаться в шифре любое количество раз или не встречаться совсем?

11.

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

 

 

БейсикPython

SUB F(n)

    PRINT n,

    IF n > 2 THEN

       F(n − 1)

       F(n − 2)

       F(n − 3)

    END IF

END SUB

def F(n):

    print (n)

    if n > 2:

        F(n − 1)

        F(n − 2)

        F(n − 3)

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

procedure F(n: integer);

begin

    write(n);

    if n > 2 then

    begin

      F(n − 1);

      F(n − 2);

      F(n − 3)

    end

end;

алг F(цел n)

нач

    вывод n

    если n > 2 то

      F(n − 1)

      F(n − 2)

      F(n − 3)

    все

кон

Си

void F(int n ){

    cout « n « endl;

    if (n > 2) {

        F(n − 1);

        F(n − 2);

        F(n − 3);

    }

}

 

 

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

12.

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

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

13.

В некоторой стране проживает 1000 человек. Индивидуальные номера налогоплательщиков-физических лиц в этой стране содержат только цифры 0, 1, 2 и 3. Каково минимальное количество разрядов в ИНН в этой стране, если различные между собой номера имеют абсолютно все жители?

14.

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

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

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

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

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

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

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

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

Цикл

  ПОКА условие

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

  КОНЕЦ ПОКА

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

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

  ЕСЛИ условие

    ТО команда1

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

  КОНЕЦ ЕСЛИ

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

 

Ниже приведена программа для исполнителя Редактор.

НАЧАЛО

ПОКА нашлось (133) ИЛИ нашлось (881)

  ЕСЛИ нашлось (133)

    ТО заменить (133, 81)

      ИНАЧЕ заменить (881, 13)

  КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

 

На вход этой программе подается строка, состоящая из 100 цифр; последняя цифра в строке — цифра 1, а остальные цифры — восьмёрки. Какая строка получится в результате применения программы к этой строке? В ответе запишите полученную строку.

15.

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

Сколько существует различных путей из города А в город Т, проходящих через город Н?

16.

Запись числа 338 в системе счисления с основанием N содержит 3 цифры и оканчивается на 2. Чему равно максимально возможное основание системы счисления?

17.

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

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

 

ЗапросНайдено страниц
(в тысячах)
(Суворов & Альпы) | (Суворов & Варшава)1100
Суворов & Варшава600
Суворов & Варшава & Альпы50

 

 

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

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

18.

Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n. Так, например, 14&5 = 11102&01012 = 01002 = 4.

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

 

x&25 ≠ 0 → (x&17 = 0 → x&А ≠ 0)

 

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

19.

Значения элементов двухмерного массива A[1..10,1..10] сначала равны 4. Затем выполняется следующий фрагмент программы:

 

БейсикPython

FOR i = 1 TO 4

    FOR j = 1 TO 5

        A(i,j) = A(i,j)+4

        A(j,i) = A(j,i)+5

    NEXT j

NEXT i

for i in range(1, 5):

    for j in range(1, 6):

        A[i,j] = A[i,j]+4

        A[j,i] = A[j,i]+5

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

for i:= 1 to 4 do

    for j:=1 to 5 do begin

        A[i,j]:=A[i,j]+4;

        A[j,i]:=A[j,i]+5;

    end;

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

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

        A[i,j]:=A[i,j]+4

        A[j,i]:=A[j,i]+5

    кц

кц

Си++

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

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

        A[i][j]=A[i][j]+4;

        A[j][i]=A[j][i]+5;

    }

}

 

 

Сколько элементов массива будут равны 9?

20.

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

 

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0: M = 1

WHILE X > 0

    L = L + 1

    IF X MOD 2 > 0 THEN

        M = M * (X MOD 8)

    END IF

    X = X \ 8

WEND

PRINT M

PRINT L

 

x = int(input())

l=0; m=1

while x > 0:

    l += 1

    if x%2 > 0:

        m *= x%8

    x = x//8

print(m, l)

 

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

var x, L, M: longint;

begin

    readln(x);

    L := 0; M := 1;

    while x > 0 do begin

        L := L+ 1;

        if x mod 2 <> 0 then

            M := M * (x mod 8);

        x := x div 8;

    end;

    writeln(M); write(L);

end.

 

алг

нач

    цел x, L, M

    ввод x

    L := 0; M := 1

    нц пока x > 0

        L := L + 1;

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

            то M := M * mod(x,8)

        все x := div(x,8)

    кц

    вывод M, нс, L

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0; M = 1;

    while (x > 0) {

        L++;

        if (x%2 > 0)

            M *= x%8;

        x = x / 8;

    }

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

    return 0;

}

 

 

21.

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

 

БейсикPython

DIM K, I AS LONG

INPUT K

I = 12

WHILE I > 0 AND F(I) >= K

    I = I - 1

WEND

PRINT I

FUNCTION F(N)

    F = N * N + 20

END FUNCTION

def f(n):

    return n * n + 20

k = int(input())

i = 12

while i > 0 and f(i) >= k:

    i = i - 1

print(i)

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n * n + 20

        end;

begin

    readln(k);

    i := 12;

    while (i>0) and (f(i)>=k) do

        i := i-1;

    writeln(i)

end.

алг

нач

цел i, k

ввод k

i := 12

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

i := i - 1

кц

вывод i

кон

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

нач

знач := n * n + 20

кон

Си++

#include <iostream>

using namespace std;

long f(long n) { return n * n + 20; }

int main()

{

    long k, i;

    cin >> k;

    i = 12;

    while (i>0 && f(i)>=k) i––;

    cout << i << endl;

}

 

22.

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

1) Прибавь 1

2) Прибавь 2

3) Прибавь предыдущее

Первая команда увеличивает число на экране на 1, вторая увеличивает это число на 2, третья прибавляет к числу на экране число, меньшее на 1 (к числу 3 прибавляется 2, к числу 11 прибавляется 10 и т. д.). Программа для исполнителя А22 — это последовательность команд. Сколько существует программ, которые число 2 преобразуют в число 9?

23.

Сколько существует различных наборов значений логических переменных x1, х2, хЗ, х4, х5, хб, х7, х8, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1 —> х2) —> (хЗ—> х4) = 1

(хЗ —> х4) —> (х5 —> хб) = 1

(х5 —> хб) —> (х7 —> х8) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, х2, хЗ, х4, х5, хб, х7, х8, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

24.

Требовалось написать программу, которая решает уравнение «a |x| = b» относительно х для любых чисел а и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT a, b, x

IF a = 0 THEN

IF b = 0 THEN

PRINT "любое число"

ELSE

PRINT "нет решений"

ENDIF

ELSE

IF b = 0 THEN

PRINT "x =0"

ELSE

PRINT "x =",b/a, "или x =",-b/a

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if a == 0:

    if b == 0:

        print('любое число')

    else:

        print('нет решений')

else:

    if b == 0:

        print('x = 0')

    else:

        print('x =', b/a, 'или x =',-b/a)

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

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

    if b = 0 then

        write ('любое число')

    else

        write ('нет решений')

else

    if b = 0 then

        write('x = 0')

    else

        write('x =',b/a,' или x =',-b/a);

end.

алг

нач

    вещ a,b,x

    если a = 0 то

        если b = 0 то

            вывод "любое число"

        иначе вывод "нет решений"

        все

    иначе

        если b = 0 то

            вывод "x = 0"

        иначе

            вывод "x =", b/a, "или x =",-b/a

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{float a,b,x;

cin >> a >> b >> x;

if (a==0)

if (b==0)

cout << "любое число";

else

cout << "нет решений";

else

if (b==0)

cout << "x - 0";

else

cout << "x=" << b/a << "или x=" << -b/a << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

25.

Дан массив, содержащий 2014 положительных целых чисел. Симметричной парой называются два элемента, которые находятся на равном расстоянии от концов массива. Например, 1-й и 2014-й элементы, 2-й и 2013-й и т. д. Порядок элементов в симметричной паре не учитывается: элементы на 1 и 2014 местах — это та же самая пара, что и элементы на 2014 и 1 местах. Напишите на одном из языков программирования программу, которая подсчитывает в массиве количество симметричных пар, у которых сумма элементов меньше 100. Программа должна вывести одно число — количество отобранных симметричных пар. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.

 

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

N=2014

DIM A(N) AS INTEGER

DIM I, J, K AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

END

const

N=2014;

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 2014

int main(){

int a[N];

int i, j, k;

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

cin >> a[i];

}

алг

нач

цел N=2014

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

цел i, j, k

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

ввод a[i]

кц

кон

Python

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

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

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

a = []

n = 2014

for i in range(0, n):

    a.append(int(input()))

...

 

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

26.

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

27.

Гоночная трасса состоит из двух основных дорог и нескольких переездов, позволяющих перейти с одной дороги на другую. На всех участках, включая переезды, движение разрешено только в одну сторону, поэтому переезд возможен только с дороги A на дорогу B. Гонщик стартует в точке A0 и должен финишировать в точке BN. Он знает, за какое время сможет пройти каждый участок пути по каждой дороге, то есть время прохождения участков A0A1, A1A2, …, AN-1AN, B0B1, B1B2, …, BN-1BN. Время прохождения всех переездов A0B0, A1B1, …, ANBN одинаково и известно гонщику. Необходимо определить, за какое минимальное время гонщик сможет пройти трассу.

 

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

 

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

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

 

Задание Б. Имеется набор данных о пунктах Ai и Bi. Напишите программу для решения этой задачи.

Постарайтесь сделать программу эффективной по времени и используемой памяти (или хотя бы по одной из этих характеристик).

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

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

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

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

 

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

Входные данные

В первой строке задаётся количество участков трассы N. Во второй строке задаётся целое число t — время (в секундах) прохождения каждого из переездов A0B0, A1B1, …, ANBN. В каждой из последующих N строк записано два целых числа ai и bi, задающих время (в секундах) прохождения очередного участка на каждой из дорог. В первой из этих строк указывается время прохождения участков A0A1 и B0B1, во второй — A1A2 и B1B2 и т. д.

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

3

20

320 150

200 440

300 210

Выходные данные

Программа должна напечатать одно целое число: минимально возможное время прохождения трассы (в секундах).

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

750