При выполнении заданий с кратким ответом впишите в поле для ответа цифру, которая соответствует номеру правильного ответа, или число, слово, последовательность букв (слов) или цифр. Ответ следует записывать без пробелов и каких-либо дополнительных символов. Дробную часть отделяйте от целой десятичной запятой. Единицы измерений писать не нужно.
Если вариант задан учителем, вы можете вписать или загрузить в систему ответы к заданиям с развернутым ответом. Учитель увидит результаты выполнения заданий с кратким ответом и сможет оценить загруженные ответы к заданиям с развернутым ответом. Выставленные учителем баллы отобразятся в вашей статистике.
Версия для печати и копирования в MS Word
Вариант составлен по шаблону 4510314.
Вычислите: 101010112 – 2508 + 516. Ответ запишите в десятичной системе счисления. В ответе запишите только число, основание системы счисления писать не нужно.
Ответ:
Миша заполнял таблицу истинности логической функции F
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
| ??? | ??? | ??? | ??? | F |
|---|---|---|---|---|
| 0 | 0 | 1 | ||
| 1 | 1 | 0 | ||
| 1 | 1 | 0 |
Определите, какому столбцу таблицы истинности соответствует каждая из переменных w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Функция F задана выражением ¬x ∨ y, зависящим от двух
переменных, а фрагмент таблицы имеет следующий вид.
| ??? | ??? | F |
| 0 | 1 | 0 |
Тогда первому столбцу соответствует переменная y, а второму столбцу — переменная x. В ответе нужно написать: yx.
Ответ:
Между населёнными пунктами A, B, C, D, E, F построены дороги, протяжённость которых приведена в таблице. Отсутствие числа в таблице значает, что прямой дороги между пунктами нет.
| A | B | C | D | E | F | |
| A | 2 | 4 | 8 | 16 | ||
| B | 2 | 3 | ||||
| C | 4 | 3 | ||||
| D | 8 | 3 | 3 | 5 | 3 | |
| E | 5 | 5 | ||||
| F | 16 | 3 | 5 |
Определите длину кратчайшего пути между пунктами A и F, проходящего через пункт E и не проходящего через пункт B. Передвигаться можно только по указанным дорогам.
Ответ:
Ниже приведены фрагменты таблиц базы данных победителей городских предметных олимпиад:
|
|
Сколько дипломов I степени получили ученики 10-й школы?
Ответ:
Все заглавные буквы русского алфавита закодированы неравномерным двоичным кодом, в котором никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Кодовые слова для некоторых букв известны: Э — 1111, К — 1001, З — 1000, А — 11100, М — 110, Е — 011, Н — 00. Какое наименьшее количество единиц может содержать код слова ЗАДАЧА?
Ответ:
У исполнителя Удвоитель две команды, которым присвоены номера:
1. прибавь 1
2. умножь на 2.
Первая из них увеличивает число на экране на 1, вторая удваивает его. Например, 2121 – это программа
умножь на 2
прибавь 1
умножь на 2
прибавь 1,
которая преобразует число 1 в число 7.
Запишите порядок команд в программе преобразования числа 3 в число 63, содержащей не более 8 команд, указывая лишь номера команд. Если таких программ более одной, то запишите любую из них.
Ответ:
Дан фрагмент электронной таблицы:
| A | B | C | |
| 1 | 4 | 6 | |
| 2 | =(С1+2)/(4*A1) | =1/(C1+2) | =3/(3*C1+B1) |
Какое целое положительное число должно быть записано в ячейке С1, чтобы построенная после выполнения вычислений диаграмма по значениям диапазона ячеек А2:С2 соответствовала рисунку?
Известно, что все значения диапазона, по которым построена диаграмма, имеют один и тот же знак.
Ответ:
Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.
| Бейсик | Python |
|---|---|
DIM S, N AS INTEGER S = 900 N = 30 WHILE S > N S = S - 30 N = N + 20 WEND PRINT N
| s = 900 n = 30 while s > n: s = s - 30 n = n + 20 print(n)
|
| Паскаль | Алгоритмический язык |
var s, n: integer; begin s := 900; n := 30; while s > n do begin s := s - 30; n := n + 20; end; writeln(n) end. | алг нач цел s, n s := 900 n := 30 нц пока s > n s := s - 30 n := n + 20 кц вывод n кон |
| Си++ | |
#include <iostream> using namespace std; int main() { int s = 900, n = 30; while (s > n) { s = s - 30; n = n + 20; } cout << n; return 0; }
| |
Ответ:
Документ объёмом 10 Мбайт можно передать с одного компьютера на другой двумя способами. А. Сжать архиватором, передать архив по каналу связи, распаковать. Б. Передать по каналу связи без использования архиватора. Какой способ быстрее и насколько, если:
- средняя скорость передачи данных по каналу связи составляет 223 бит в секунду;
- объём сжатого архиватором документа равен 70% исходного;
- время, требуемое на сжатие документа, — 15 секунд, на распаковку — 2 секунды?
В ответе напишите букву А, если быстрее способ А, или Б, если быстрее способ Б. Сразу после буквы напишите число, обозначающее, на сколько секунд один способ быстрее другого. Так, например, если способ Б быстрее способа А на 23 секунды, в ответе нужно написать Б23. Единицы измерения «секунд», «сек.», «с.» к ответу добавлять не нужно.
Ответ:
Максим составляет таблицу кодовых слов для передачи сообщений, каждому возможному сообщению соответствует своё кодовое слово. В качестве кодовых слов Максим использует четырёхбуквенные слова, в которых есть только буквы A, B, C, D, E, F, X, причём
Ответ:
Ниже на пяти языках программирования записан рекурсивный алгоритм F.
| Бейсик | Python |
|---|---|
SUB F(n) IF n < 10 THEN F(n + 3) PRINT N F(3 * n) END IF END SUB
| def F(n): if n < 10: F(n + 3) print(n) F(3 * n)
|
| Паскаль | Алгоритмический язык |
procedure F(n: integer); begin if n < 10 then begin F(n + 3); write(n); F(3 * n); end end;
| алг F(цел n) нач если n < 10 то F(n + 3) вывод n F(3 * n) все кон
|
| С++ | |
void F (int n) { if (n < 10) { F (n + 3); std::cout << n; F (3 * n); } }
| |
Запишите подряд без пробелов и разделителей все числа, которые будут показаны на экране при выполнении вызова F(1). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Ответ:
В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места — нули. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Узлы с IP-адресами 98.162.71.151 и 98.162.71.155 находятся в разных сетях. Чему равно наименьшее количество возможных единиц в масках этих сетей?
Ответ:
Автомобильный номер состоит из 6 символов. Допустимыми символами считаются 10 цифр и 5 заглавных букв: A, P, T, E, K. Для хранения каждого из 15 допустимых символов используется одинаковое и наименьшее возможное количество бит. Для хранения каждого номера используется одинаковое и минимально возможное количество байт. Сколько байт памяти потребуется для хранения 400 автомобильных номеров? Номера хранятся без разделителей.
Ответ:
Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, состоит из 8 команд. Четыре команды — это команды-приказы:
| вверх | вниз | влево | вправо |
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх вниз
влево
вправо
Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:
| сверху свободно | снизу свободно | слева свободно | справа свободно |
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда 1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно)
В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции.
Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.
Сколько клеток лабиринта соответствуют требованию, что, начав движение в данной клетке и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА снизу свободно ИЛИ справа свободно
ПОКА снизу свободно
вниз
КОНЕЦ ПОКА
ЕСЛИ справа свободно
ТО
вправо
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Ответ:
На рисунке — схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, И, К, Л. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город Л?
Ответ:
В системе счисления с некоторым основанием десятичное число 36 записывается в виде 40. Укажите это основание.
Ответ:
В таблице приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:
| Запрос | Количество страниц (тыс.) |
|---|---|
| торты | пироги | 12000 |
| торты & пироги | 6500 |
| пироги | 7700 |
Сколько страниц (в тысячах) будет найдено по запросу торты
Ответ:
Элементами множества А являются натуральные числа. Известно, что выражение
(x ∈ {2, 4, 6, 8, 10, 12}) → (((x ∈ {3, 6, 9, 12, 15}) ∧ ¬(x ∈ A)) → ¬(x ∈ {2, 4, 6, 8, 10, 12}))
истинно (т. е. принимает значение 1) при любом значении переменной х. Определите наименьшее возможное значение суммы элементов множества A.
Ответ:
В программе используется одномерный целочисленный массив A с индексами от 0 до 10. Значения элементов равны 0, 7, 1, 3, 2, 14, 5, 9, 11, 0, 7, т. е. A[0]=0, A[1]=7 и т. д. Определите значение переменной s после выполнения следующего фрагмента программы:
| Бейсик | Python |
|---|---|
s = 0 n = 2 FOR i = 0 TO 10 IF A(i) < A(n) THEN s = s + A(i) ELSE A(n) = A(i) END IF NEXT i
| s = 0 n = 2 for i in range(11): if A[i] < A[n]: s += A[i] else: A[n] = A[i]
|
| Паскаль | Алгоритмический язык |
s := 0; n := 2; for i := 0 to 10 do if A[i] < A[n] then s := s + A[i] else A[n] := A[i];
| s := 0 n := 2 нц для i от 0 до 10 если A[i] < A[n] то s := s + A[i] иначе A[n] := A[i] все кц |
| Си++ | |
s = 0; n = 2; for (int i = 0; i < 11; i++) { if (A[i] < A[n]) s += A[i]; else A[n] = A[i]; }
| |
Ответ:
Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 10.
| Бейсик | 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 = 1 THEN M = (x mod 10)*2 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 == 1: M = (x % 10)*2 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 = 1) then M:=(x mod 10)*2; 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) = 1 то M := mod(x,10)*2 все 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 == 1){ M = (x % 10)*2; } x = x / 10; } cout << L << endl << M endl; }
| |
Ответ:
Какое число будет напечатано в результате работы следующей программы? Для Вашего удобства программа приведена на пяти языках программирования.
| Бейсик | Python |
|---|---|
DIM A, B, T, M, R AS INTEGER A = -9: B = 9 M = A: R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT T PRINT M+R
FUNCTION F(x) IF X>0 THEN F = (x-10)*(x-10) + 6 ELSE F = (x-2)*(x-2) + 3 END IF END FUNCTION
| def F(x): if x>0: return (x-10)*(x-10) + 6 else: return (x-2)*(x-2) + 3 a=-9; b=9 M=a; R=F(a) for t in range(a,b+1): if F(t) < R: M=t; R=F(t) print(M+R)
|
| Паскаль | Алгоритмический язык |
var a, b, t, M, R :integer; function F(x:integer):integer; begin if x>0 then F := (x-10)*(x-10) + 6 else F := (x-2)*(x-2) + 3 end; begin a := -9; b := 9; 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+R) end.
| алг нач цел a, b, t, M, R a := -9; b := 9 M := a; R := F(a) нц для t от a до b если F(t) < R то M := t; R := F(t) все кц вывод M+R кон алг цел F(цел x) нач если x>0 то знач := (x-10)*(x-10) + 6 иначе знач := (x-2)*(x-2) + 3 все кон
|
| С++ | |
#include <iostream> using namespace std; int F(int x) { if (x>0) return (x-10)*(x-10) + 6; else return (x-2)*(x-2) + 3; }
int main() { int a, b, t, M, R; a = -9; b = 9; M = a; R = F(a); for (t=a; t<=b; ++t) { if (F(t) < R) { M = t; R = F(t); } } cout << M+R; return 0; }
| |
Ответ:
Исполнитель преобразует число на экране. У исполнителя есть четыре команды, которым присвоены номера.
1. Прибавить 1.
2. Прибавить 2.
3. Умножить на 2.
4. Умножить на 3.
Первая команда увеличивает число на экране
Программа для исполнителя — это последовательность команд. Например, если в начальный момент на экране находится
Сколько существует программ, которые преобразуют исходное
Ответ:
Укажите значения переменных K, L, M, N, при которых логическое выражение
(K → M) ∨ (L ∧ K) ∨ ¬N
ложно. Ответ запишите в виде строки из четырех символов: значений переменных K, L, M и N (в указанном порядке). Так, например, строка 1101 соответствует тому, что K=1, L=1, M=0, N=1.
Ответ:
Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех единиц. Ведущие нули выводить не надо. Если в числе N нет цифр кроме единиц и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 489, а при вводе 2001 нужно вывести 2. Для решения этой задачи ученик написал такую программу:
| Бейсик | Паскаль |
|---|---|
DIM N, M AS LONG DIM D AS INTEGER INPUT N M = 0 WHILE N>=1 D = N MOD 10 IF D>1 THEN M = 10*D + M END IF N = (N – D) \ 10 WEND PRINT M END | var n, m: longint; d: integer; begin read(n); m := 0; while n>=1 do begin d := n mod 10; if d > 1 then begin m := 10*d + m; end; n := (n – d) div 10; end; write(m); end. |
| Си++ | Алгоритмический |
#include <iostream> using namespace std; int main(){ long int n, m; int d; cin >> n; m = 0; while (n>=1) { d = n%10; if (d>1) { m = 10*d + m; } n = (n – d) / 10; } cout << m; } | алг нач цел n, m цел d ввод n m := 0 нц пока n>=1 d := mod(n,10) если d>1 то m := 10*d + m все n := div(n-d,10) кц вывод m кон |
| Python | |
n = int(input()) m = 0 while n >= 1: d = n %10 if d > 1: m = 10*d + m n = (n – d) // 10 print(m) | |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1984.
2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
На следующей странице вам будет предложено проверить их самостоятельно.
Дан массив, содержащий 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). В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
На следующей странице вам будет предложено проверить их самостоятельно.
Два игрока, Паша и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один или три камня или увеличить количество
камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 18 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 33. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 33 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 32.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.
Выполните следующие задания. Во всех случаях обосновывайте свой ответ.
1. а) Укажите все такие значения числа S, при которых Паша может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S.
б) Укажите такое значение S, при котором Паша не может выиграть за один ход, но при любом ходе Паши Вася может выиграть своим первым ходом. Опишите выигрышную стратегию Васи.
2. Укажите 3 таких значения S, при которых у Паши есть выигрышная стратегия, причём Паша не может выиграть за один ход и может выиграть своим вторым ходом независимо от того, как будет ходить Вася. Для каждого указанного значения S опишите выигрышную стратегию Паши.
3. Укажите хотя бы одно значение S, при котором:
— у Васи есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Паши, и
— у Васи нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Для указанного значения S опишите выигрышную стратегию Васи.
Постройте дерево всех партий, возможных при этой выигрышной стратегии Васи (в виде рисунка или таблицы).
На следующей странице вам будет предложено проверить их самостоятельно.
Дана последовательность N целых положительных чисел. Рассматриваются все пары элементов последовательности, находящихся на расстоянии не меньше 6 (разница в индексах элементов должна быть 6 или более). Необходимо определить количество пар, произведение чисел в которых кратно 6.
Описание входных и выходных данных.
первой строке входных данных задаётся количество чисел N (6 ≤ N ≤ 1000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000.
Пример входных данных:
8
1
3
5
4
6
7
9
8
Пример выходных данных для приведённого выше примера входных данных:
1
Пояснение. Из 8 чисел можно составить 3 пары, удовлетворяющие условию. Это будут элементы с индексами 1 и 7, 1 и 8, 2 и 8. Для заданного набора чисел получаем пары (1, 9), (1, 8), (3, 8). Произведения чисел в этих парах равны 9, 8, 24. На 6 делится одно из этих произведений.
Напишите эффективную по времени и по памяти программу для решения этой задачи.
Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.
Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 килобайта и не увеличивается с ростом N.
Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и по памяти, — 4 балла.
Максимальная оценка за правильную программу, эффективную только по времени или только по памяти, — 3 балла.
Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности, — 2 балла.
Вы можете сдать одну или две программы решения задачи. Если Вы сдадите две программы, каждая из них будет оцениваться независимо от другой, итоговой станет бо́льшая из двух оценок.
Перед текстом программы кратко опишите алгоритм решения. Укажите использованный язык программирования и его версию.
На следующей странице вам будет предложено проверить их самостоятельно.