Вариант с досрочного ЕГЭ по информатике 2019

Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
1 / 9
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен
по ИНФОРМАТИКЕ и ИКТ
Инструкция по выполнению работы
Экзаменационная работа состоит из двух частей, включающих в себя
27 заданий. Часть 1 содержит 23 задания с кратким ответом, часть 2
содержит 4 задания с развёрнутым ответом.
На выполнение экзаменационной работы по информатике и ИКТ
отводится 3 часа 55 минут (235 минут).
Ответы к заданиям 1–23 записываются в виде числа,
последовательности букв или цифр. Ответы запишите в поле ответа в тексте
работы, а затем перенесите в бланк ответов № 1.
Задания 24–27 требуют развёрнутого ответа. В бланке ответов № 2
укажите номер задания и запишите его полное решение.
Все бланки ЕГЭ заполняются яркими чёрными чернилами.
Допускается использование гелевой или капиллярной ручки.
При выполнении заданий можно пользоваться черновиком. Записи
в черновике, а также в тексте контрольных измерительных материалов
не учитываются при оценивании работы.
Баллы, полученные Вами за выполненные задания, суммируются.
Постарайтесь выполнить как можно больше заданий и набрать наибольшее
количество баллов.
После завершения работы проверьте, что ответ на каждое задание в
бланках ответов №1 и №2 записан под правильным номером.
Желаем успеха!
В экзаменационных заданиях используются следующие соглашения.
1.
Обозначения для логических связок (операций):
a)
отрицание (инверсия, логическое НЕ) обозначается ¬ (например, ¬А);
b)
конъюнкция (логическое умножение, логическое И) обозначается /\
(например, А /\ В) либо & (например, А & В);
c)
дизъюнкция (логическое сложение, логическое ИЛИ) обозначается \/
(например, А \/ В) либо | (например, А | В);
d)
следование (импликация) обозначается → (например, А → В);
e)
тождество обозначается ≡ (например, A ≡ B). Выражение A ≡ B истинно
тогда и только тогда, когда значения A и B совпадают (либо они оба
истинны, либо они оба ложны);
f)
символ 1 используется для обозначения истины (истинного
высказывания); символ 0 для обозначения лжи (ложного
высказывания).
2.
Два логических выражения, содержащих переменные, называются
равносильными (эквивалентными), если значения этих выражений
совпадают при любых значениях переменных. Так, выражения А В и (¬А)
\/ В равносильны, а А \/ В и А /\ В неравносильны (значения выражений
разные, например, при А = 1, В = 0).
3.
Приоритеты логических операций: инверсия (отрицание), конъюнкция
(логическое умножение), дизъюнкция (логическое сложение), импликация
(следование), тождество. Таким образом, ¬А /\ В \/ С /\ D означает то же, что
и ((¬А) /\ В) \/ (С /\ D).
Возможна запись А /\ В /\ С вместо (А /\ В) /\ С. То же относится и к
дизъюнкции: возможна запись А \/ В \/ С вместо (А \/ В) \/ С.
4.
Обозначения Мбайт и Кбайт используются в традиционном для
информатики смысле как обозначения единиц измерения, чьё соотношение
с единицей «байт» выражается степенью двойки.
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
2 / 9
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
П1
П2
П3
П4
П5
7
15
7
12
5
5
10
15
12
10
4
9
16
Б
Г
Е
А
В
Д
Часть 1
Сколько натуральных чисел удовлетворяет неравенству.
10111100
2
< x < BF
16
В ответе укажите одно число количество таких чисел.
Ответ: .
Логическая функция F задаётся выражением (x ¬y) (y ≡ z) ¬w.
Определите, какому столбцу таблицы истинности функции F соответствует
каждая из переменных x, y, z, w.
?
?
?
?
F
0
0
0
0
1
0
1
0
1
0
0
В ответе напишите буквы x, y, z, w в том порядке, в котором идут
соответствующие им столбцы.
Ответ: .
На рисунке справа схема дорог Н-ского района изображена в виде графа, в
таблице содержатся сведения о длинах этих дорог километрах). Так как
таблицу и схему рисовали независимо друг от друга, то нумерация
населённых пунктов в таблице никак не связана с буквенными
обозначениями на графе. Определите длину дороги между пунктами Б и В.
Передвигаться можно только по указанным дорогам.
Ответ: .
Ответами к заданиям 1–23 являются число, последовательность букв
или цифр, которые следует записать в БЛАНК ОТВЕТОВ 1 справа от
номера соответствующего задания, начиная с первой клеточки, без
п робелов, запятых и других дополнительных символов. Каждый символ
пишите в отдельной клеточке в соответствии с приведёнными в бланке
образцами.
1
2
3
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
3 / 9
Ответ: .
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
В фрагменте базы данных представлены сведения о родственных
отношениях. На основании имеющихся данных найдите мужчину, который
впервые стал отцом в самом раннем возрасте, и запишите в ответе его
идентификатор (ID).
Для кодирования некоторой последовательности, состоящей из букв К, Л, М,
Н, П, Р. решили использовать неравномерный двоичный код,
удовлетворяющий условию Фано. Для букв К, Л, М, Н использовали
соответственно кодовые слова 00, 01, 100, 110. Укажите кратчайшее
Таблица 1
Ответ: .
Таблица 2
возможное кодовое слово для буквы П, при котором код будет допускать
однозначное декодирование. Если таких кодов несколько, укажите код с
наименьшим числовым значением.
Ответ: .
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему
новое число R следующим образом.
1)
Строится двоичная запись числа N.
2)
К этой записи дописываются справа ещё два разряда по следующему
правилу:
а) находится остаток от деления на 2 суммы двоичных разрядов N,
полученный результат дописывается в конец двоичной
последовательности N.
б) пункт а повторяется для вновь полученной последовательности
Полученная таким образом запись ней на два разряда больше, чем в записи
исходного числа N) является двоичной записью искомого числа R. Укажите
минимальное число R, которое превышает 123 и может являться результатом
работы алгоритма. В ответе это число запишите в десятичной системе.
Ответ: .
Дан фрагмент электронной таблицы. Из ячейки B3 в ячейку C2 была
скопирована формула. При копировании адреса ячеек в формуле
автоматически изменились. Каким стало числовое значение ячейки С2?
А
В
С
D
1
1
10
100
1000
2
2
20
2000
3
3
=A$2+$D3
300
3000
4
4
40
400
4000
4
5
7
ID
Фамилия_И.О.
Пол
Год
ID_Родителя
ID_Ребенка
рожд.
240
325
240
Черных А.В.
М
1938
295
325
261
Черных Д.И.
М
1997
325
261
295
Черных Е.П.
Ж
1939
356
261
6
325
Черных И.А.
М
1972
367
427
356
Черных Н.Н.
Ж
1972
240
517
367
Гунько А.Б.
М
1979
295
517
427
Малых Е.А.
М
2001
517
625
517
Краско М.А.
Ж
1967
517
630
625
Соболь О.К.
Ж
1988
743
367
630
Краско В.К.
М
1993
854
367
743
Гунько Б.В.
М
1951
943
427
854
Колосова А.Е.
Ж
1955
962
356
943
Гунько А.Н
Ж
1975
962
943
962
Малых Н.Н.
М
1946
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
4 / 9
Ответ: .
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Запишите число, которое будет напечатано в результате выполнения
следующей программы. Для Вашего удобства программа представлена на
четырех языках программирования.
Бэйсик
Паскаль
DIM K, S AS INTEGER
var k, s: integer;
begin
s:=230;
k:=0;
while s > 0 do begin
s := s 15;
k := k + 2;
end;
write(k);
end.
S = 230
K = 0
WHILE S > 0
S = S 15
K = K + 1
WEND
PRINT K
С++
Python
#include <iostream>
s = 230
k = 0
while s > 0:
s = s - 15
k = k + 2
print(k)
using namespace std;
int main() {
int s , k;
s = 230;
k = 0;
while(s > 0){
s = s - 15;
k = k + 2;
}
cout << k << endl;
}
Ответ: .
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы
можно было сохранить любое растровое изображение размером 640 на 320
пикселов при условии, что в изображении могут использоваться 64
различных цвета? В ответе запишите только целое число, единицу
измерения писать не нужно.
Ответ: .
Вася составляет 6-буквенные слова из букв К, О, Т. Причем буква К
используется в каждом слове ровно 1 раз. Остальные буквы могут быть
использованы любое количество раз, в том числе совсем отсутствовать.
Сколько слов может составить Вася? Словом называется любая буквенная
комбинация, не обязательно осмысленное слово русского языка.
Ответ: .
Укажите, что будет выведено на экран после вызова F(4)
Бэйсик
Паскаль
SUB F(N)
PRINT N
IF N >= 3 THEN
F(n - 1)
F(n - 2)
F(n - 2)
END IF
END SUB
procedure F(n: integer);
begin
write(n);
if n >= 3 then begin
F(n - 1);
F(n - 2);
F(n 2)
end
end;
С++
Python
void F(int n)
{
std::cout << n;
if (n >= 3) {
F(n - 1);
F(n - 2);
F(n - 2);
}
}
def F(n):
print(n, end=’’)
if n >= 3:
F(n - 1)
F(n - 2)
F(n - 2)
Ответ: .
В терминологии сетей TCP/IP маской сети называют двоичное число,
которое показывает, какая часть IP-адреса узла сети относится к адресу сети,
а какая к адресу узла в этой сети. Адрес сети получается в результате
применения поразрядной конъюнкции к заданному адресу узла и его маске.
По заданным IP-адресу узла сети и адресу сети определите последний байт
маски сети :
IP-адрес: 140.37.235.224 Адрес сети: 140.37.235.192
8
9
10
11
12
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
5 / 9
Ответ: .
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Б
Е
К
В
А
Ж
Г
М
И
Д
З
Л
Для регистрации на сайте некоторой страны пользователю необходимо
придумать пароль длиной ровно 10 символов. В пароле можно использовать
только прописные буквы английского алфавита, т.е. 26 символов.
Информация о пользователе хранится с помощью минимально возможного
целого количества байт. Каждый символ в пароле кодируется одинаковым и
минимально возможным количеством бит. Для хранения дополнительной
информации на одного пользователя отводится 15 Байт. Определите объем
памяти в байтах, необходимый для хранения информации о 50
пользователях
Ответ: .
Исполнитель Чертёжник перемещается на координатной плоскости,
оставляя след в виде линии. Чертёжник может выполнять
команду сместиться на (a, b), где a, b целые числа. Эта команда
перемещает Чертёжника из точки с координатами (x, y) в точку с
координатами (x + a, y + b). Например, если Чертёжник находится в точке с
координатами (4, 2), то команда сместиться на (2, −3) переместит
Чертёжника в точку (6, −1).
Цикл
ПОВТОРИ число РАЗ
последовательность команд
КОНЕЦ ПОВТОРИ
означает, что последовательность команд будет выполнена
указанное число раз (число должно быть натуральным).
Чертежнику был дан для исполнения следующий алгоритм:
Сместиться на (2, 2)
Повтори n раз
Сместиться на (a, b)
Сместиться на (2, -3)
конец
Сместиться на (-20, -14)
Найдите максимальное значение n, при котором чертежник после
выполнения алгоритма возвращается в исходную точку.
Ответ: .
На рисунке – схема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, М. По
каждой дороге можно двигаться только в одном направлении, указанном
стрелкой. Сколько существует различных путей, ведущих из города А в
город М, проходящих через город В?
Ответ: .
Сколько единиц содержит двоичная запись числа, являющегося результатом
вычисления следующего выражения.
4
16
+ 2
34
- 8
Ответ: .
В таблице приведены запросы и количество страниц, которые нашел
поисковый сервер по этим запросам в некотором сегменте Интернета:
Запрос
Количество
страниц
(тыс.)
Корабль
30
Нос
35
Колено
45
Корабль | Нос | Колено
70
Корабль & Нос
13
Корабль & Колено
0
Сколько страниц (в тысячах) будет найдено по запросу
Нос & Колено
13
14
15
16
17
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
6 / 9
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Укажите наименьшее значение А, при котором выражение
(y + 2x < A) (x > 15) (y > 30)
тождественно истинно (то есть принимает значение 1 при всех
вещественных значениях переменной x).
Ответ: .
В программе используется одномерный целочисленный массив A с
индексами от 0 до 11. Значения элементов равны 20, 19, 33, 21, 42, 13, 12, 24,
4, 22, 6, 10, т.е. A[0]=20, A[1]=19 и т.д. Определите значение переменной s
после выполнения следующего фрагмента программы:
Бэйсик
Паскаль
N = 1
S = 1
FOR I = 1 TO N
IF A(I) < A(N) THEN
S = S * I
T = A(I)
A(I) = A(N)
A(N) = t
END IF
NEXT I
n:= 1;
s:= 1;
for i:=1 to 11 do
if A[i] < A[n] then begin
s := s * i;
t := A[i];
A[i] := A[n];
A[n] := t;
end;
С++
Python
n = 1;
s = 1;
for (i = 1; i < 12; i++) {
if (A[i] < A[n]) {
s = s * i;
t = A[i];
A[i] = A[n];
A[n] = t;
}
}
n = 1
s = 1
for i in range(1, 12):
if A[i] < A[n]:
s = s * i
t = A[i]
A[i] = A[n]
A[n] = t
Ответ: .
Ниже записан алгоритм. Получив на вход число x, этот алгоритм печатает
числа: L и M. Укажите наименьшее из таких чисел x, при вводе которого
после выполнения алгоритма будет напечатано сначала 5, а потом 6.
Бэйсик
Паскаль
DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
M = M + 1
IF X MOD 2 <> 0 THEN
L = L + 1
END IF
X = X \ 2
WEND
PRINT L
PRINT M
var x, L, M: longint;
begin
readln(x);
L := 0; M := 0;
while x > 0 do begin
M := M + 1;
if x mod 2 <> 0
then L := L + 1;
x := x div 2;
end;
writeln(L); write(M);
end.
С++
Python
#include <iostream>
using namespace std;
int main()
{
int x, L, M;
cin >> x;
L = 0; M = 0;
while (x > 0) {
M = M + 1;
if(x % 2 != 0){
L = L + 1;
}
x = x / 2;
}
cout << L << endl << M;
}
x = int(input())
L = 0
M = 0
while x > 0:
M = M + 1
if x % 2 != 0:
L = L + 1
x = x // 2
print L
print M
Ответ: .
18
19
20
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
7 / 9
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Не забудьте перенести все ответы в бланк ответов 1 в соответствии
с инструкцией по выполнению работы.
Напишите в ответе число, равное количеству различных значений входной
переменной k, при которых приведённая ниже программа выводит тот же
ответ, что и при входном значении k=35. Значение k=35 также включается в
подсчёт различных значений k.
Python
Паскаль
DIM K, I AS INTEGER
INPUT K
I = 1
WHILE F(I) < K
I = I + 1
WEND
IF F(I)-K<=K-F(I-1) THEN
PRINT I
ELSE
PRINT I 1
END IF
var k, i : longint;
function f(n: longint) :
longint;
begin
f := n*n*n;
end;
begin
readln(k);
i := 1;
while f(i) < k do
i:= i+1;
if f(i)-k <= k-f(i-1) then
writeln(i)
else writeln(i-1);
end.
FUNCTION F(N)
F = N*N*N
END FUNCTION
С++
Python
#include <iostream>
def f(n):
using namespace std;
return n*n*n
int F(int n){
k = int(input())
return n*n*n;
i = 1
}
while f(i) < k:
int main(){
i = i + 1
cin >> k;
i = 1;
if f(i)k <= kf(i-1):
while(F(i) < k) i=i+1;
print(i)
if(F(i)-k<=k-F(i-1))
else:
cout << i;
print(i-1)
else
cout << (i - 1);
return 0;
}
Ответ: .
Исполнитель преобразует число на экране. У исполнителя есть две команды,
которым присвоены номера:
1.
Прибавить 1
2.
Умножить на 2
Сколько существует программ, для которых при исходном числе 3
результатом является число 37 и при этом траектория вычислений содержит
число 18?
Ответ: .
Сколько различных решений имеет система логических уравнений
(x
1
y
1
) (x
2
y
2
)
(x
2
y
2
) (x
3
y
3
)
...
(x
7
y
7
) (x
8
y
8
)
где x
1
, …, x
8
, y
1
, …, y
8
, логические переменные? В ответе не нужно
перечислять все различные наборы значений переменных, при которых
выполнено данное равенство. В качестве ответа нужно указать количество
таких наборов.
Ответ: .
21
22
23
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
8 / 9
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Часть 2
На обработку поступает последовательность из четырёх целых
неотрицательных чисел. Нужно написать программу, которая выводит на
экран количество чисел, остаток от деления на 10 которых равен 0, и сумму
таких чисел. Если таких чисел нет, требуется вывести на экран «NO».
Программист написал программу неправильно.
Последовательно выполните следующее.
1.
Напишите, что выведет эта программа при вводе 13, 20, 37, 40.
2.
Приведите пример входных данных, при вводе которых программа
выведет верный ответ. Среди вводимых чисел должно быть хотя бы одно,
удовлетворяющее условию отбора. Укажите этот ответ.
3.
Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите
эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не
написать свою. Вы можете только заменять ошибочные строки, но не можете
удалять строки или добавлять новые. Заменять следует только ошибочные
строки: за исправления, внесённые в строки, не содержащие ошибок, баллы
будут снижаться.
Дан массив, содержащий 70 положительных целых чисел. Опишите на
одном из языков программирования алгоритм, определяющий сумму чисел
не меньших 49 и кратных 7, заменяющий такие значения на найденную
сумму и выводящий измененный массив на экран (по одному элементу в
строке).
Бейсик
Паскаль
CONST N=70
DIM A(N) AS INTEGER
DIM I, J, X AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
END
const N=70;
var
a: array [1..N] of integer;
i, j, x: integer;
begin
for i:=1 to N do
readln(a[i]);
end.
C++
Python
#include <iostream>
using namespace std;
int main() {
const int N=70;
int a[N];
int i, j, x;
for (i=0; i<N; i++)
cin >> a[i];
}
#допускается использовать
#целочисленных переменных
#j, x
а = []
n = 70
for і in range(n):
a.append(int(input()))
Для записи ответов на задания этой части (2427) используйте БЛАНК
ОТВЕТОВ 2. Запишите сначала номер задания (24, 25 и т. д.), а затем
полное решение. Ответы записывайте чётко и разборчиво.
25
24
Бэйсик
Паскаль
DIM P,I,X,COUNT AS INTEGER
COUNT = 0
P = 0
FOR I = 1 TO 4
INPUT X
IF X MOD 10 = 0 THEN
COUNT = COUNT + 1
P = X
END IF
NEXT I
IF P > 0 THEN
PRINT COUNT
PRINT P
ELSE
PRINT ‘NO’
END IF
var p,i,x,count: integer;
begin
count := 0;
p := 0;
for i := 1 to 4 do begin
read (x);
if x mod 10 = 0 then
begin
count := count+1
p := x;
end
end;
if p > 0 then begin
writeln(count);
writeln(p);
end
else
writeln('NO')
end.
C++
Python
#include <iostream>
using namespace std;
int p, i, x, count;
count = 0; p = 0;
for(i=0; i < 4; i = i + 1){
cin >> x;
if(x % 10 == 0){
count = count + 1;
p = x;
}
}
if(p > 0)
cout << count << endl << p;
else
cout << ‘NO’;
count = 0
p = 0
for i in range(4):
x = int(input())
if x % 10 == 0:
count = count + 1
p = x
if p > 0:
print(count)
print(p)
else:
print(‘NO’)
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
9 / 9
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит
куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход
игрок может добавить в кучу один камень или увеличить количество камней
в куче в два раза. У каждого игрока, чтобы делать ходы, есть неограниченное
количество камней. Игра завершается в тот момент, когда количество
камней в куче становится не менее 69. Победителем считается игрок,
сделавший последний ход, то есть первым получивший кучу, в которой
будет 69 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 68.
1.
При каких S:
а) Петя выигрывает первым ходом;
б) Ваня выигрывает первым ходом? Опишите выигрышную стратегию
2.
Назовите два значения S, при которых Петя может выиграть своим
вторым ходом. Опишите выигрышную стратегию.
3.
Назовите значение S, при которых Ваня выигрывает своим первым или
вторым ходом. Представьте дерево всех возможных партий для
найденного значения.
На вход программы поступает последовательность из N целых
положительных чисел, все числа в последовательности различны.
Рассматриваются все пары различных элементов последовательности
(элементы пары не обязаны стоять в последовательности рядом, порядок
элементов в паре неважен). Необходимо определить количество пар, для
которых произведение элементов кратно 62.
Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел N (1 N 1000).
В каждой из последующих N строк записано одно натуральное число, не
превышающее 10000. В качестве результата программа должна вывести
одно число: количество пар, в которых произведение элементов кратно 62.
Пример входных данных:
5
2
6
13
31
93
Пример выходных данных для приведённого выше примера входных
данных:
4
26
27
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
10 / 8
Система оценивания экзаменационной работы по информатике и ИКТ
Часть 1
Часть 2
На обработку поступает последовательность из четырёх целых
неотрицательных чисел. Нужно написать программу, которая выводит на
экран количество чисел, остаток от деления на 10 которых равен 0, и сумму
таких чисел. Если таких чисел нет, требуется вывести на экран «NO».
Программист написал программу неправильно.
Бэйсик
Паскаль
DIM P,I,X,COUNT AS INTEGER
COUNT = 0
P = 0
FOR I = 1 TO 4
INPUT X
IF X MOD 10 = 0 THEN
COUNT = COUNT + 1
P = X
END IF
NEXT I
IF P > 0 THEN
PRINT COUNT
PRINT P
ELSE
PRINT ‘NO’
END IF
var p,i,x,count: integer;
begin
count := 0;
p := 0;
for i := 1 to 4 do begin
read (x);
if x mod 10 = 0 then
begin
count := count+1
p := x;
end
end;
if p > 0 then begin
writeln(count);
writeln(p);
end
else
writeln('NO')
end.
C++
Python
#include <iostream>
using namespace std;
int p, i, x, count;
count = 0; p = 0;
for(i=0; i < 4; i = i + 1){
cin >> x;
if(x % 10 == 0){
count = count + 1;
p = x;
}
}
if(p > 0)
cout << count << endl << p;
else
cout << ‘NO’;
count = 0
p = 0
for i in range(4):
x = int(input())
if x % 10 == 0:
count = count + 1
p = x
if p > 0:
print(count)
print(p)
else:
print(‘NO’)
24
№ задания
Ответ
1
2
2
xwzy
3
15
4
367
5
101
6
126
7
2020
8
32
9
150
10
192
11
4321122
12
192
13
1100
14
6
15
60
16
30
17
27
18
61
19
240
20
47
21
28
22
28
23
162
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
11 / 8
Последовательно выполните следующее.
1.
Напишите, что выведет эта программа при вводе 13, 20, 37, 40.
2.
Приведите пример входных данных, при вводе которых программа
выведет верный ответ. Среди вводимых чисел должно быть хотя бы одно,
удовлетворяющее условию отбора. Укажите этот ответ.
3.
Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите
эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не
написать свою. Вы можете только заменять ошибочные строки, но не можете
удалять строки или добавлять новые. Заменять следует только ошибочные
строки: за исправления, внесённые в строки, не содержащие ошибок, баллы
будут снижаться.
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
1. 2
40
2. 21 13 20 33
3.
В программе есть две ошибки. Исправления приведены для языка
Pascal.
1)
Неверное накопление суммы. Строка с ошибкой:
p := x
Верное исправление:
p := p + x
2) Неверная проверка наличия чисел в последовательности,
удовлетворяющих условию. Строка с ошибкой:
if p > 0 then begin
Верное исправление:
if count > 0 then begin
Указания по оцениванию
Баллы
В задаче требуется выполнить три действия.
1.
Указать результат программы при данном вводе.
Это действие считается выполненным, если указан верный
результат работы программы при заданных входных данных.
Экзаменуемый не обязан объяснять, как получен этот результат,
достаточно указать верное число.
2.
Указать пример ввода, при котором программа выводит
верный ответ.
Это действие считается выполненным, если указан пример
числа, при вводе которого выводится верное сообщение. Ученик
не обязан указывать, что будет выведено, и объяснять, как
работает программа.
Пояснения для проверяющего: сумма чисел, оканчивающихся на
0, должна быть равна последнему такому числу в
последовательности.
3. Найти и исправить ошибки в программе.
Это действие считается выполненным, если верно указаны обе
ошибки и предложены верные варианты исправления, при этом
никакие верные строки программы не указаны в качестве
неверных. В исправленной строке допускаются незначительные
синтаксические ошибки (лишние или пропущенные знаки
препинания, неточные написания служебных слов языка).
Ошибка считается исправленной, если выполнены оба
следующих условия:
а) правильно указана строка с ошибкой;
б) указан такой новый вариант строки, что при исправлении
другой ошибки получается правильная программа
Выполнены все три необходимых действия, и ни одна верная
3
Не выполнены условия, позволяющие поставить 3 балла. Имеет
место одна из следующих ситуаций.
1.
Выполнены два первых действия, найдена и исправлена одна
ошибка в программе, ни одна верная строка не названа
ошибочной.
2.
Выполнены два первых действия, найдены и исправлены две
ошибки в программе, одна верная строка названа ошибочной.
3.
Выполнено одно из первых двух действий, найдены и
исправлены две ошибки в программе, ни одна верная строка не
названа ошибочной
2
Не выполнены условия, позволяющие поставить 2 или 3 балла.
При этом имеет место один из следующих случаев.
1.
Выполнены два первых действия. При этом несущественно,
насколько правильно выполнено третье действие.
2.
Найдены и исправлены две ошибки в программе, не более чем
одна верная строка названа ошибочной. При этом
несущественно, насколько правильно выполнены действия 1 и
2.
3.
Выполнено одно из двух первых действий. Исправлена одна
из двух ошибок. Не более чем одна верная строка названа
ошибочной
1
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла
0
Максимальный балл
3
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
12 / 8
25
Дан массив, содержащий 70 положительных целых чисел. Опишите на
одном из языков программирования алгоритм, определяющий сумму чисел
не меньших 49 и кратных 7, заменяющий такие значения на найденную
сумму и выводящий измененный массив на экран (по одному элементу в
строке).
Бейсик
Паскаль
CONST N=70
DIM A(N) AS INTEGER
DIM I, J, X AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
END
const N=70;
var
a: array [1..N] of integer;
i, j, x: integer;
begin
for i:=1 to N do
readln(a[i]);
end.
C++
Python
#include <iostream>
using namespace std;
int main() {
const int N=70;
int a[N];
int i, j, x;
for (i=0; i<N; i++)
cin >> a[i];
}
#допускается использовать
#целочисленных переменных
#j, x
а = []
n = 70
for і in range(n):
a.append(int(input()))
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Бейсик
Паскаль
J = 0
FOR I = 1 TO N
IF (A(I) >= 49) AND
(A(i) MOD 7 = 0) THEN
J = J + A(I)
END IF
NEXT I
FOR I = 1 TO N
IF (A(I) >= 49) AND
(A(i) MOD 7 = 0) THEN
A(I) = J
END IF
PRINT A(I)
NEXT I
j := 0;
for i := 1 to N do
if(a[i] >= 49)
AND(a[i] mod 7 = 0) then
j := j + a[i];
for i := 1 to N do
if(a[i] >= 49)
AND(a[i] mod 7 = 0) then
a[i] := j;
for i := 1 to N do
writeln(a[i]);
25
C++
Python
j = 0;
for(i=0;i<N;i=i+1)
if((a[i]>=49)
&&(a[i]%7==0)
j = j + a[i];
for(i=0;i<N;i=i+1)
if((a[i]>=49)
&&(a[i]%7==0)
a[i] = j;
for(i=0;i<N;i=i+1)
cout << a[i];
j = 0
for i in range(N):
if a[i]>=49 and a[i]%7==0:
j = j + a[i]
for i in range(N):
if a[i]>=49 and a[i]%7==0:
a[i] = j
print(a[i])
Указания по оцениванию
Баллы
Общие указания
1.
В алгоритме, записанном на языке программирования,
допускается наличие отдельных синтаксических ошибок, не
искажающих замысла автора программы.
2.
Эффективность алгоритма не имеет значения и не
оценивается.
3.
Допускается запись алгоритма на языке
программирования, отличном от языков, перечисленных в
условии. В этом случае должны использоваться переменные,
аналогичные описанным в условии. Если язык
программирования использует типизированные переменные,
описания переменных должны быть аналогичны описаниям
переменных на естественном языке. Использование
нетипизированных или необъявленных переменных
возможно только в случае, если это допускается языком
программирования; при этом количество переменных и их
идентификаторы должны соответствовать условию задачи
Предложен правильный алгоритм, выдающий в качестве
результата верное значение
2
Не выполнены условия, позволяющие поставить 2 балла.
Предложено в целом верное решение, содержащее не более
одной ошибки из числа следующих:
1)
в цикле происходит выход за границу массива
(например, при использовании цикла от 0 до N,
например, при использовании функции range на
языке python с одним аргументом);
2)
не инициализируются или неверно
инициализируются начальное значение суммы;
3)
неверно указан знак сравнения для одного из
условий в задаче;
1
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
13 / 8
26
4)
в сложном логическом условии простые проверки
верны, но условие в целом построено неверно
(например, перепутаны операции «И» и «ИЛИ»,
неверно расставлены скобки в логическом
выражении);
5)
исходный массив не изменяется в ходе работы
алгоритма;
6)
отсутствует вывод ответа;
7)
используется переменная, не объявленная в разделе
описания переменных;
8)
не указано или неверно указано условие завершения
цикла;
9)
индексная переменная в цикле не меняется
(например, в цикле while) или меняется неверно;
10)
неверно расставлены операторные скобки
Не выполнены условия, позволяющие поставить 1 или 2
балла
0
Максимальный балл
2
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит
куча камней. Игроки ходят по очереди, первый ход делает Петя. За один
ход игрок может добавить в кучу один камень или увеличить количество
камней в куче в два раза. У каждого игрока, чтобы делать ходы, есть
неограниченное количество камней. Игра завершается в тот момент, когда
количество камней в куче становится не менее 69. Победителем считается
игрок, сделавший последний ход, то есть первым получивший кучу, в
которой будет 69 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 68.
1.
При каких S:
а) Петя выигрывает первым ходом;
б) Ваня выигрывает первым ходом? Опишите выигрышную стратегию
2.
Назовите два значения S, при которых Петя может выиграть своим
вторым ходом. Опишите выигрышную стратегию.
3.
Назовите значение S, при которых Ваня выигрывает своим первым или
вторым ходом. Представьте дерево всех возможных партий для
найденного значения.
1а. [35; 68]
1б. 34. Ване нужно увеличить количество камней в куче вдвое.
2. 17, 33. Пете надо сделать кучу из 34 камней, чем свести игру к
п.1б.
3. 32
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
26
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
14 / 8
Выполнены первое и второе задания.
Первое задание выполнено, возможно, при наличии
недочётов, указанных в критериях на 3 балла; для
второго задания (i) правильно указано, кто из игроков
имеет выигрышную стратегию в каждой из указанных
позиций, и (ii) правильно указан первый ход Пети при
выигрышной стратегии, однако не указано, что после
выбранного хода Пети получается позиция,
выигрышная для Вали; для третьего задания правильно
указан игрок, имеющий выигрышную стратегию
Не выполнены условия, позволяющие поставить 3 или 2 балла,
и выполнено одно из следующих условий.
Первое задание выполнено, возможно, с недочётами,
указанными в критериях на 3 балла.
Второе задание выполнено, возможно, с недочётами,
указанными в критериях на 2 балла.
Для второго и третьего заданий во всех случаях
правильно указан игрок, имеющий выигрышную
стратегию
1
Не выполнено ни одно из условий, позволяющих поставить 1,
2 или 3 балла
0
Максимальный балл
3
Указания по оцениванию
Баллы
Предварительные замечания
В задаче от ученика требуется выполнить три задания. Их
трудность возрастает. Количество баллов в целом
соответствует количеству выполненных заданий (подробнее
см. ниже).
Ошибка в решении, не искажающая основного замысла и не
приведшая к неверному ответу, например арифметическая
ошибка при вычислении количества камней в заключительной
позиции, при оценке решения не учитывается.
Пункт считается выполненным, если правильно указаны все
позиции, в которых Петя выигрывает первым ходом, и указано,
каким должен быть первый ход. Пункт считается
выполненным, если правильно (i) указано значение, при
котором неверный ход Пети ведет к выигрышной позиции для
Вани; (ii) правильно приведено пояснение выигрышной для
Вани стратегии. Первое задание считается выполненным
полностью, если выполнены полностью оба пункта: 1а и 1б.
Задание 2 считается выполненным, если (i) указаны 2 значения,
при которых у Пети есть выигрышная стратегия, и (ii) Петя
при этой стратегии выигрывает на второй ход. (iii) приведено
пояснение, как нужно играть Пете.
Задание 3 считается выполненным, если правильно описано
дерево всех партий, возможных при выигрышной стратегии
Вани виде рисунка или таблицы). При этом допускаются
арифметические ошибки, не искажающие сути решения.
Во всех случаях стратегии могут быть описаны так, как это
сделано в примере решения, или другим способом
Выполнены второе и третье задания.
Для первого задания правильно перечислены позиции, в
которых Паша выигрывает первым ходом (п. 1а), и правильно
указано, кто из игроков имеет выигрышную стратегию при
указанных значениях S (п. 1б). При этом допускаются недочёты
следующих типов:
-
в п. 1а не указано, каким ходом выигрывает Петя;
-
в п. 1б не указано, каким ходом выигрывает Петя.
Здесь и далее в решениях допускаются арифметические
ошибки, которые не искажают сути решения и не приводят к
неправильному ответу
3
Не выполнены условия, позволяющие поставить 3 балла, и
выполнено одно из следующих условий.
Выполнено третье задание.
2
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
15 / 8
На вход программы поступает последовательность из N целых
положительных чисел, все числа в последовательности различны.
Рассматриваются все пары различных элементов последовательности
(элементы пары не обязаны стоять в последовательности рядом, порядок
элементов в паре неважен). Необходимо определить количество пар, для
которых произведение элементов кратно 62.
Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел N (1 N 1000).
В каждой из последующих N строк записано одно натуральное число, не
превышающее 10000. В качестве результата программа должна вывести
одно число: количество пар, в которых произведение элементов кратно 62.
Пример входных данных:
5
2
6
13
31
93
Пример выходных данных для приведённого выше примера входных
данных:
4
27
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Задача А.
const MAXN = 1000;
var N, i, j, count: integer;
a: array[1..MAXN] of integer;
begin
readln(N);
for i:=1 to N do
readln(a[i]);
count := 0;
for i:=1 to N-1 do
for j:=i+1 to N do
if (a[i] * a[j]) mod 62 = 0 then
count := count + 1;
writeln(count);
end.
Задача Б.
var i, N, x, count: integer;
k62, k2, k31: integer;
begin
readln(N);
k2 := 0; k31 := 0; k62 := 0;
for i:=1 to N do begin
readln(x);
if x mod 62 = 0 then k62 := k62 + 1
else if x mod 2 = 0 then k2 := k2 + 1
else if x mod 31 = 0 then k31 := k31 + 1;
end;
writeln(k62*(Nk62) + k2*k31 + k62*(k62-1)/2);
end.
Указания по оцениванию
Баллы
Предварительные замечания.
1.
В задаче есть два задания (А и Б). Соответственно, ученик
может представить две программы. В каждой из программ
должно быть указано, решением какого из заданий она
является. Если в работе представлена одна программа, то в
ней также должно быть указано, решением какого из заданий
она является.
2.
Если ученик не указал, к какому заданию относится
программа, или можно предположить, что ученик ошибся в
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
16 / 8
возможность (при его желании) сначала написать менее
сложное и менее эффективное решение (задание А), которое
даёт ему право получить 2 балла, а затем приступить к поиску
более эффективного решения.
3. Приведённые в п. 2.1–2.5 правила имеют целью избежать
снижения баллов из-за того, что ученик перепутал
обозначения заданий.
Общие принципы оценивания решений
4 балла ставится за эффективную и правильно работающую
программу, решающую задачу в общем случае (задача Б).
При этом программа может содержать до трёх
синтаксических ошибок («описок»).
3 балла ставится в случае, когда фактически задача решена и
решена эффективно по времени, возможно, с хранением всех
входных данных в массиве, но количество «описок» более
трёх (но не более пяти) и допущено не более одной
содержательной ошибки, не позволяющей усомниться в том,
что экзаменуемый правильно придумал алгоритм.
2 балла ставится, если программа, решающая задачу Б, в
дополнение к неточностям, которые перечислены выше,
работает неэффективно по времени и/или допущено до трёх
упомянутых выше содержательных ошибок. Количество
допустимых «описок» – до семи.
2 балла также ставится за правильное решение упрощенной
задачи (задача А).
1 балл ставится, если программа написана неверно, но из
описания алгоритма и общей структуры программы видно,
что экзаменуемый в целом правильно представляет путь
решения задачи.
Далее эти общие принципы уточнены
Критерии оценивания задания А
При решении задачи A программа верно находит требуемое
количество пар.
Допускается до пяти синтаксических и приравненных к ним
ошибок (см. критерии оценивания задания Б на 4 балла)
2
Не выполнены условия, позволяющие поставить 2 балла. Из
описания алгоритма и общей структуры программы видно,
что экзаменуемый в целом правильно представляет путь
решения задачи. Допускается любое количество «описок»
1
Не выполнены критерии, позволяющие поставить 1 или 2
балла
0
Максимальный балл для задания А
2
идентификации программ, необходимо следовать
приведённым ниже инструкциям.
Случай 2.1. Ученик представил только одну программу.
Следует рассматривать программу как решение задания Б и
оценивать её по соответствующим критериям.
Случай 2.2. Ученик представил две программы, но указание
задания есть только для одной из программ.
Следует рассматривать вторую программу как ответ на
оставшееся задание.
Случай 2.3. Ученик представил две программы; ни для одной
из них задание не указано, или в обоих решениях указано
одно и то же задание.
Следует первую (по порядку в представленных учеником
материалах) программу рассматривать как ответ на задание
А, а вторую – как ответ на задание Б.
Случай 2.4. Ученик представил более двух программ.
Следует рассматривать только две последние программы и
соотносить их с заданиями по правилам 2.12.3.
Случай 2.5. Решение, представленное в качестве решения
задания А, по критериям для задания Б может быть оценено
в 3 или 4 балла. При этом решение, представленное в
качестве решения задания Б, оценено меньшим баллом.
Следует считать, что ученик перепутал обозначения заданий
и оценивать решение, представленное как решение задания
А, по критериям задания Б.
НАПОМИНАЕМ! Итоговый балл за задачу это бόльший из
баллов, полученных учеником за каждое из двух
представленных решений.
Пояснения для проверяющих.
1.
Задание Б является усложнением задания А. Если в
качестве решения задания Б представлено решение задания
А, то считается, что учеником допущена опечатка, и решение
оценивается по критериям для задания А.
В качестве решения задания А может быть представлена
программа, которая решает задачу при произвольном
количестве входных данных (как в задании Б), осуществляя
полный перебор всех вариантов. Такая программа
неэффективна по времени, поэтому она должна оцениваться
2 баллами.
2.
Два задания (и, соответственно, возможность для
экзаменуемого представить две программы) дают ученику
Составил Е вгений Джобс (vk.com/inform_web)
В варианте использованы материалы К. Полякова k polyakov.spb.ru
Разрешается свободное копирование в некоммерческих образовательных целях
Единый государственный экзамен, 2019 г.
ИНФОРМАТИКА
Демонстрационный вариант с предварительной волны
17 / 8
1)
ошибка инициализации, в том числе отсутствие
инициализации;
2)
не выводится результат, равный 0, или вместо 0
выводится неверное значение;
3)
допущен выход за границу массива;
4)
используется знак “<” вместо “<=”, “or” вместо “and”
и т.п.
Не выполнены условия, позволяющие поставить 3 или 4
балла. Программа работает в целом верно, эффективно или
нет, например для решения задачи используется перебор
всех возможных вариантов выбора элементов в парах. В
реализации алгоритма допускается до трёх содержательных
ошибок, допустимые виды ошибок перечислены в
критериях на 3 балла.
Количество синтаксических «описок» не должно быть более
семи. Программа может быть неэффективна по времени,
например все числа запоминаются в массиве и
перебираются все возможные суммы, т.е., по сути,
реализовано решение задачи А без ограничений на
количество введённых пар
2
Не выполнены условия, позволяющие поставить 2, 3 или 4
балла. Из описания алгоритма и общей структуры
программы видно, что экзаменуемый в целом правильно
представляет путь решения задачи. Допускается любое
количество «описок». 1 балл ставится также за решения,
верные лишь в частных случаях
1
Не выполнены критерии, позволяющие поставить 1, 2, 3 или
4 балла
0
Максимальный балл для задания Б
4
Итоговый максимальный балл
4
Критерии оценивания задания Б
Программа правильно работает для любых соответствующих
условию входных данных и при этом эффективна как по
времени, так и по памяти, т.е. не используются массивы и
другие структуры данных (в том числе стек рекурсивных
вызовов), размер которых зависит от количества входных
элементов, а время работы пропорционально этому
количеству. Возможно использование массивов и
динамических структур данных при условии, что в них в
каждый момент времени хранится фиксированное
количество элементов, требующих для хранения меньше
1Кб.
Программа может содержать не более трёх синтаксических
ошибок следующих видов:
1)
пропущен или неверно указан знак пунктуации;
2)
неверно написано или пропущено
зарезервированное слово языка программирования;
3)
не описана или неверно описана переменная;
4)
применяется операция, недопустимая для
соответствующего типа данных.
К синтаксическим ошибкам приравнивается использование
неверного типа данных.
Если одна и та же ошибка встречается несколько раз, она
считается за одну ошибку
4
Не выполнены условия, позволяющие поставить 4 балла.
Программа в целом работает правильно для любых входных
данных произвольного размера. Время работы
пропорционально количеству введённых чисел; правильно
указано, какие величины должны вычисляться по ходу
чтения элементов последовательности чисел. Количество
синтаксических ошибок («описок») указанных выше видов
не более пяти.
Используемая память, возможно, зависит от количества
прочитанных чисел (например, входные данные
запоминаются в массиве, контейнере STL в C++ или другой
структуре данных). Допускается ошибка при вводе и выводе
данных, не влияющая на содержание решения.
Программа может содержать не более пяти синтаксических и
приравненных к ним ошибок, описанных в критериях на 4
балла. Кроме того, допускается наличие одной ошибки,
принадлежащей к одному из следующих видов:
3