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

1.

Вычислите сумму чисел x и у, при х = D516, у = 578.

Ответ запишите в двоичной системе счисления.

2.

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

 

Перем. 1Перем. 2Перем. 3Функция
?????????F
0000
0010
0101
0110
1000
1010
1101
1110

 

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

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

 

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

 

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

3.

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

 

ABCDEFG
A26
B253
C518
D63197
E95
F77
G857

 

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

4.

На городской тур олимпиады по математике отбираются те учащиеся, кто набрал на районном туре не менее 12 баллов или полностью решил хотя бы одну из двух самых сложных задач (№ 6 или № 7). За полное решение задач 1–4 даётся 2 балла; задач 5, 6 — 3 балла; задачи 7 — 4 балла. Дан фрагмент таблицы результатов районного тура.

 

ФамилияПолЗадача

№ 1

Задача

№ 2

Задача

№ 3

Задача

№ 4

Задача

№ 5

Задача

№ 6

Задача

№ 7

Айвазянж1021033
Житомирскийм2222233
Иваненкож2110123
Лимоновм2111223
Петраковм2001020
Рахимовм2220201
Суликашвилиж1111123
Толкачёваж2221220

 

Сколько девочек из этой таблицы прошли на городской тур?

5.

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

6.

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

 

1. прибавь 2,

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

 

Выполняя первую из них, Калькулятор прибавляет к числу на экране 2, а выполняя вторую, умножает его на 5. Запишите порядок команд в программе, которая преобразует число 1 в число 11 и содержит не более 4 команд. Указывайте лишь номера команд.

 

(Например, программа 2121 — это программа

 

умножь на 5,

прибавь 2,

умножь на 5,

прибавь 2.

 

Эта программа преобразует число 1 в число 37.)

7.

В ячейки диапазонов C1:F6 и B2:B6 электронной таблицы записаны числа, как показано на рисунке.

 

ABCDEF
110203040
2111213141
3212223242
4313233343
5414243444
6515253545

 

 

В ячейке B1 записали формулу =$E1+D$3. После этого ячейку B1 скопировали в ячейку C5. Какое число будет показано в ячейке C5?

Примечание: знак $ используется для обозначения абсолютной адресации.

8.

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

 

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

DIM N, S AS INTEGER

N = 0

S = 0

WHILE S <= 325

S = S + 10

N = N + 3

WEND

PRINT N

var n, s: integer;

begin

    n := 0;

    s := 0;

    while s <= 325 do

    begin

        s := s + 10;

        n := n + 3

    end;

    write (n)

end.

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

#include <iostream>

using namespace std;

int main ()

{

    int n, s;

    n = 0;

    s = 0;

    while (s <= 325)

    {

        s = s + 10;

        n = n + 3;

    }

    cout « n « endl;

}

алг

нач

целn, s

n := 0

s := 0

нц пока s <= 325

    s := s + 10

    n := n + 3

кц

вывод n

кон

Python

n = 0

s = 0

while s <= 325:

    s += 10

    n += 3

print(n)

 

9.

Документ объёмом 12 Мбайт можно передать с одного компьютера на другой двумя способами.

 

А. Сжать архиватором, передать архив по каналу связи, распаковать.

 

Б. Передать по каналу связи без использования архиватора.

 

Какой способ быстрее и насколько, если:

 

 ·  средняя скорость передачи данных по каналу связи составляет 221 бит в секунду;

 ·  объём сжатого архиватором документа равен 75% исходного;

 ·  время, требуемое на сжатие документа, — 13 секунд, на распаковку — 3 секунды?

 

В ответе напишите букву А, если быстрее способ А, или Б, если быстрее способ Б. Сразу после буквы напишите число, обозначающее, на сколько секунд один способ быстрее другого. Так, например, если способ Б быстрее способа А на 23 секунды, в ответе нужно написать Б23. Единицы измерения «секунд», «сек.», «с.» к ответу добавлять не нужно.

10.

Сколько слов длины 4, начинающихся с согласной буквы, можно составить из букв Л, Е, Т, О? Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.

11.

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

 

БейсикPython

DECLARE SUB F(n)

SUB F (n)

    IF n > 0 THEN

        F(n \ 4)

        PRINT n

        F(n - 1)

    END IF

END SUB

def F(n):

    if n > 0:

        F(n // 4)

        print(n)

        F (n - 1)

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

procedure F(n: integer);

begin

    if n > 0 then

    begin

        F(n div 4);

        write(n);

        F(n - 1);

    end

end;

алг F(цел n)

нач

    если n > 0 то

        F(div(n, 4))

        вывод n

        F(n - 1)

    все

кон

Си++

void F(int n){

    if (n > 0){

        F(n / 4)

        std::cout << n;

        F(n - 1);

    }

}

 

 

В качестве ответа укажите последовательность цифр, которая будет напечатана на экране в результате вызова F(5).

12.

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

 

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

Маска: 255.255.192.0

 

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

 

ABCDEFGH
064128130131132192255

 

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

 

ABCDEFGH
1281682558127017192

 

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

13.

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

14.

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

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

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.

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

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

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

 

Цикл

ПОКА условие

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

КОНЕЦ ПОКА

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

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

ЕСЛИ условие

    ТО команда1

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

КОНЕЦ ЕСЛИ

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

 

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

 

НАЧАЛО

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

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

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

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

        КОНЕЦ ЕСЛИ

    КОНЕЦ ПОКА

КОНЕЦ

15.

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

 

16.

В системе счисления с некоторым основанием десятичное число 25 записывается как 100. Найдите это основание.

17.

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

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

 

ЗапросНайдено страниц
(в сотнях тысяч)
Бабочка22
Гусеница40
Трактор24
Трактор | Бабочка | Гусеница66
Трактор & Гусеница12
Трактор & Бабочка0

 

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

 

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

18.

Для какого наибольшего целого неотрицательного числа A выражение

(y + 2x ≠ 48) ∨ (A < x) ∨ (x < y)

тождественно истинно, то есть принимает значение 1 при любых целых неотрицательных x и y?

19.

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

 

БейсикPython

s = 0

n = 10

FOR i = 2 TO n

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

NEXT i

s=0

n=10

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

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

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

s:=0;

n:=10;

for i:= 2 to n do begin

  s:=s+A[i]*A[i]-A[i-1]*A[i-1];

end;

s:=0

n:=10

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

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

кц

Си++

s = 0;

n=10;

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

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

}

 

В начале выполнения этого фрагмента в массиве находились числа 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, то есть A[1] = 1, A[2] = 2 и так далее Чему будет равно значение переменной s после выполнения данной программы?

20.

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

 

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

L = L + 1

IF M < x AND x mod 2 = 0 THEN

     M = x mod 10

ENDIF

x = x \ 10

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

    L = L + 1

    if M < x and x % 2 == 0:

        M = x % 10

    x = x // 10

print(L)

print(M)

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

var x, L, M: integer;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        L := L + 1;

        if (M < x) and (x mod 2 = 0) then

            M:=x mod 10;

        x := x div 10;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        L := L + 1

        если M < x и mod(x,2) = 0 то

            M := mod(x,10)

        все

        x := div(x,10)

    кц

    вывод L, нс, M

кон

Си++

 

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0){

        L = L + 1;

        if(M < x and x % 2 == 0){

            M = x % 10;

        }

        x = x / 10;

    }

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

}

 

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 = (x+4)*(x+2)

END FUNCTION

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

    Function F(x:integer): integer;

        begin

            F := (x+4)*(x+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 (x+4)*(x+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)

нач

знач := (x+4)*(x+2)

кон

Python

def f(x):

    return (x+4)*(x+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. умножь на 15,

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

 

Первая из них увеличивает число на экране в 15 раз, вторая – уменьшает его в 2 раза. Программа для Калькулятора – это последовательность команд. Сколько различных чисел можно получить из числа 4096 с помощью программы, которая содержит ровно 12 команд?

23.

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

 

((x1 ≡ x2) → (x2 ≡ x3)) ∧ ((y1 ≡ y2) → (y2 ≡ y3)) = 1

((x2 ≡ x3) → (x3 ≡ x4)) ∧ ((y2 ≡ y3) → (y3 ≡ y4)) = 1

((x7 ≡ x8) → (x8 ≡ x9)) ∧ ((y7 ≡ y8) → (y8 ≡ y9)) = 1

 

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

24.

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

 

ПаскальБейсик
var х, у: real;

begin

readln(х, у) ;

if х <= у * у then

if х >= 0 then

if у <= 1 then

write('принадлежит')

else

write{'не принадлежит')

end.

INPUT x, у

IF x <= у * y THEN

IF x >= 0 THEN

IF у <= 1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void)

{ float х, у;

cin >> x >> у;

if (x <= у * у)

if (x >= 0)

if (y <= 1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если х <= у * у то

если х >= 0 то

если у <= 1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = float(input())

y = float(input())

if x <= у * y:

    if x >= 0:

        if у <= 1:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(x <= у * у)

Условие 2

(x >= 0)

Условие 3

(y <= 1)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

25.

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых десятичная запись обеих чисел оканчивается на 6.

Под парами понимайте два смежных, соседних элемента массива.

26.

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

 

добавить в кучу один камень или

увеличить количество камней в куче в четыре раза.

 

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

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

В начальный момент в куче было S камней, 1 ≤ S ≤ 64.

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

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

Задание 1.

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

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

Задание 2.

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

Задание 3.

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

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

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

27.

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

Если требуемое число составить невозможно, то программа должна вывести на экран слово «NO». А если возможно, то в первой строке следует вывести слово «YES», а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы:

Do not 911 to 09 do.

В данном случае программа должна вывести

YES

91019