Вариант № на 26-29 мая

1. Сколько единиц в двоичной записи десятичного числа 514?

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

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

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

 

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

 

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

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

 

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

 

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

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

 

  П1 П2 П3 П4 П5 П6 П7
П1     11 15   20  
П2     17     14 12
П3 11 17     6    
П4 15         8  
П5     6       9
П6 20 14   8      
П7   12     9    

 

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

4. Во фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите ID дяди Радек П. А. (дядя — это родной брат матери или отца).

 

Таблица 1
ID Фамилия_И.О. Пол
1522 Авербах М.А. Ж
1550 Буряк А.П. М
1617 Штольц И.Б. М
1682 Радек А.И. М
1894 Штольц П.И. М
1908 Радек П.А. Ж
1942 Штольц Б.Ф. М
2040 Чиж Д.К. Ж
2273 Рерих Л.А. Ж
2283 Штольц А.Б. Ж
2455 Малеев К.Г. М
2527 Буряк Р.А. М
2664 Штольц Т.И. Ж
2794 Панина Р.Г. Ж
2816 Тесленко Г.Р. Ж
2845 Рерих В.А. Ж
Таблица 2
ID_Родителя ID_Ребенка
1550 1522
2283 1522
1942 1617
2040 1617
1617 1894
2816 1894
2845 1908
2845 2273
1942 2283
2040 2283
1550 2527
2283 2527
1617 2664
2816 2664
1550 2845
2283 2845

5. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г, используется неравномерный (по длине) код: А-10, Б-11, В-001, Г-011. Через канал связи передается сообщение: АБГВГБ. Закодируйте сообщение данным кодом. Полученное двоичное число переведите в шестнадцатеричный вид.

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

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

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

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

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

 

  A B C
1 4 5  
2 =(C1+3)/(A1+4) =B1/(C1-3) =(A1+1)/(2*C1-2*B1)

 

Какое целое число должно быть записано в ячейке С1, чтобы построенная после выполнения вычислений диаграмма по значениям диапазона ячеек А2:С2 соответствовала рисунку?

 

Известно, что все значения диапазона, по которым построена диаграмма, имеют один и тот же знак.

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

 

Бейсик Python
DIM S, N AS INTEGER S = 0 N = 0 WHILE 2*S*S < 123 S = S + 1 N = N + 3 WEND PRINT N s = 0 n = 0 while 2*s*s < 123: s = s + 1 n = n + 3 print(n)
Паскаль Алгоритмический язык
var s, n: integer; begin s:= 0; n:= 0; while 2*s*s < 123 do begin s:= s + 1; n:= n + 3 end; writeln(n) end. алг нач цел n, s n:= 0 s:= 0 нц пока 2*s*s < 123 s:= s + 1 n:= n + 3 кц вывод n кон

Си++

#include <iostream>

using namespace std;

int main()

{

int s = 0, n = 0;

while (2*s*s < 123) {

s = s + 1;

n = n + 3;

}

cout << n << endl;

return 0;

}

 

9. Электронный почтовый ящик имеет объем 1,535 Мбайт. Информация на его адрес по открытому на прием каналу связи передается со скоростью 2,5 Кбайт/с. Через какое время у поставщика услуг электронной почты появится повод прислать уведомление о переполнении почтового ящика? Укажите время в секундах, округлив до целых.

10. Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 4-буквенные слова, в которых есть только буквы A, B, C, D, X, Y, Z, причём буквы X, Y и Z встречаются только на двух первых позициях, а буквы A, B, C, D — только на двух последних. Сколько различных кодовых слов может использовать Олег?

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

 

 

Бейсик Python
SUB F(n) IF n > 2 THEN PRINT N F(n \ 2) F(n − 1) END IF END SUB   def F(n): if n > 2: print(n) F(n // 2) F(n − 1)  
Паскаль Алгоритмический язык
procedure F(n: integer); begin if n > 2 then begin write(n); F(n div 2); F(n − 1); end end;   алг F(цел n) нач если n > 2 то вывод n F(div(n,2)) F(n − 1) все кон  

С++

void F (int n)

{

if (n > 2) {

std::cout << n;

F (n / 2);

F (n − 1);

}

}

 

 

 

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 111.81.200.27 адрес сети равен 111.81.192.0. Чему равно наибольшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

13. Автомобильный номер состоит из 6 символов. Допустимыми символами считаются 10 цифр и 5 заглавных букв: A, P, T, E, K. Для хранения каждого из 15 допустимых символов используется одинаковое и наименьшее возможное количество бит. Для хранения каждого номера используется одинаковое и минимально возможное количество байт. Сколько байт памяти потребуется для хранения 400 автомобильных номеров? Номера хранятся без разделителей.

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

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

Цикл

 

ПОКА условие

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

КОНЕЦ ПОКА

 

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

 

ЕСЛИ условие

ТО команда1

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

КОНЕЦ ЕСЛИ

 

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

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

 

НАЧАЛО

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

ПОКА снизу свободно

Вниз

КОНЕЦ ПОКА

Вправо

КОНЕЦ ПОКА

КОНЕЦ

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

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

 

16. Запишите десятичное число 57 в системе счисления с основанием 4. Основание системы счисления (нижний индекс после числа) писать не нужно.

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

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

 

Запрос Найдено страниц (в тысячах)
Зайцы | Белки | Углеводы 485
Зайцы 191
Углеводы 80
Белки & Зайцы 64
Белки & Углеводы 38
Зайцы | Углеводы 271

 

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

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

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

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

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

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

 

 

Бейсик Python
s = 0 n = 10 FOR i = 0 TO n-3 s = s+A(i)-A(i+2) NEXT i s = 0 n = 10 for i in range(0,n-2): s = s + A[i] - A[i+2]
Паскаль Алгоритмический язык
s:=0; n:=10; for i:=0 to n-3 do begin s:=s+A[i]-A[i+2] end; s:=0 n:=10 нц для i от 0 до n-3 s:=s+A[i]-A[i+2] кц

Си++

s = 0;

n=10;

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

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

}

 

В начале выполнения этого фрагмента в массиве находились трёхзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

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

 

 

Бейсик Python
DIM X, L, M AS INTEGER INPUT X L = 0 M = 0 WHILE X > 0 L = L + 1 IF x mod 2 = 0 THEN M = 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 x % 2 == 0: M = 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 (x mod 2 = 0) then M:= 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 если mod(x,2) = 0 то M:= 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(x % 2 == 0){

M = M + (x % 10);

}

x = x / 10;

}

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

}

 

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

 

 

Бэйсик Паскаль
DIM A, B, T, M, R AS INTEGER A = -20: B = 20 T = A: M = A: R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) ENDIF NEXT T PRINT M FUNCTION F(x) F = 2*(x-19)*(x-19)+7; END FUNCTION var a,b,t,M,R:integer; Function F(x: integer):integer; begin F:= 2*(x-19)*(x-19) + 7; 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(M); END.
Си++ Алгоритмический
#include <iostream> using namespace std; int F(int x) { return 2*(x-19)*(x-19)+7; } 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 «M «endl; } алг нач цел a, b, t, R, M a:= -20; b:= 20 M:= a; R:= F(a) нц для t от a до b если F(t)< R то M:= t; R:= F(t) все кц вывод M кон алг цел F(цел x) нач знач:= 2*(x-19)*(x-19)+7 кон

Python

def f(x):

return 2*(x-19)*(x-19) + 7

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(M)

 

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

 

Прибавь 1

Прибавь 2

Прибавь 5

 

Первая из них увеличивает число на экране на 1, вторая увеличивает это число на 2, а третья — на 5. Программа для исполнителя ТренерА — это последовательность команд. Сколько существует программ, которые число 21 преобразуют в число 30?

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

(x1 ≡ x2) ∧ (x1 ≡ x3) = 0

(x2 ≡ x3) ∧ (x2 ≡ x4) = 0

(x7 ≡ x8) ∧ (x7 ≡ x9) = 0

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

24. Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Бейсик Python
DIM A,S,P,K AS INTEGER INPUT A S = 0 P = 0 K = 1 WHILE S <= A K = K + 1 P = P + K S = S + P WEND PRINT K END a = int(input()) s = 0 p = 0 k = 1 while s <= a: k = k + 1 p = p + k s = s + p print(k)
Паскаль Алгоритмический язык
var a, s, p, k: integer; begin readln(a); s:= 0; p:= 0; k:= 1; while s <= a do begin k:= k+1; p:= k+p; s:= p+s; end; writeln(k); end. алг нач цел a, s, p, k ввод a s:= 0 p:= 0 k:= 1 нц пока s <= a k:= k+1 p:= p+k s:= s+p кц вывод k кон

Си++

#include <iostream>

using namespace std;

int main()

{

int a, s, p, k;

cin >> a;

s = 0;

p = 0;

k = 1;

while (s <= a) {

k = k+1;

p = p+k;

s = s+p;

}

cout «k «endl;

return 0;

}

 

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

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

2. Перечислите все значения A, при вводе которых программа выведет ответ 3.

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

25. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на языке программирования "Паскаль" алгоритм, позволяющий найти и вывести количество элементов массива, десятичная запись которых содержит ровно 2 цифры, причём хотя бы одна из этих цифр — цифра 9.

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

 

Паскаль Бейсик
const N=30; Var a:array [1..N] of integer; i, j, k: integer; begin for i:=1 to N do readln(a[i]); … end. N=30 DIM A(N) AS INTEGER DIM I, J, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END
Си++ Алгоритмический язык
#include <iostream> using namespace std; #define N 30 int main(){ int a[N]; int i, j, k; for (i=0; i<N; i++) cin >> a[i]; ... } алг нач цел N=30 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон

Естественный язык

Объявляем массив A из 30 элементов.

Объявляем целочисленные переменные I, J, K.

В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

Python

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

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

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

a = []

n = 30

for i in range(0, n):

a.append(int(input()))

...

 

В качестве ответа Вам необходимо привести фрагменты программы, который должен находиться на месте многоточия.

26. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) два камня или увеличить количество камней в куче в три раза. Например, пусть в одной куче 10 камней, а в другой 7 камней; такую позицию в игре будем обозначать (10, 7). Тогда за один ход можно получить любую из четырёх позиций: (12, 7), (30, 7), (10, 9), (10, 21). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.

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

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. Например, при начальных позициях (6, 36), (7, 35), (9, 34) выигрышная стратегия есть у Пети. Чтобы выиграть, ему достаточно утроить количество камней во второй куче.

 

Задание 1. Для каждой из начальных позиций (6, 21), (7, 20) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт

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

 

Задание 2. Для каждой из начальных позиций (4, 20), (6, 20) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии.

 

Задание 3. Для начальной позиции (5, 20) укажите, кто из игроков имеет выигрышную стратегию. Опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии. Постройте дерево всех партий, возможных при указанной Вами выигрышной стратегии. Представьте дерево в виде рисунка или таблицы.

27. Дана последовательность N целых положительных чисел. Рассматриваются все пары элементов последовательности, разность которых чётна, и в этих парах, по крайней мере, одно из чисел пары делится на 17. Порядок элементов в паре неважен. Среди всех таких пар нужно найти и вывести пару с максимальной суммой элементов. Если одинаковую максимальную сумму имеет несколько пар, можно вывести любую из них. Если подходящих пар в последовательности нет, нужно вывести два нуля.

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

В первой строке входных данных задаётся количество чисел N (2 ≤ N ≤ 10 000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000.

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

5

34

12

51

52

51

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

51 51

 

Пояснение. Из данных пяти чисел можно составить три различные пары,

удовлетворяющие условию: (34, 12), (34, 52), (51, 51). Наибольшая сумма

получается в паре (51, 51). Эта пара допустима, так как число 51 встречается

в исходной последовательности дважды.

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

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

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

Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и памяти, — 4 балла. Максимальная оценка за правильную программу, возможно, неэффективную по памяти или время выполнения которой существенно зависит от величины m, — 3 балла.

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

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

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: