Разбор 20 задания ЕГЭ 2018 по информатике и ИКТ из демоверсии. Это задание повышенного уровня сложности. Примерное время выполнения задания 5 минут.
Проверяемые элементы содержания:
— Анализ алгоритма, содержащего цикл и ветвление.
Элементы содержания, проверяемые на ЕГЭ:
— Формализация понятия алгоритма.
Задание 20
Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 5, а потом 7.
Ответ: ________
Разбор 20 задания ЕГЭ 2018 по информатике
Проанализируем работу программы. Для этого в качестве х возьмем произвольное двоичное число. Например 25.
1) while x>0 do — пока х>0 выполняем тело цикла (25>0)
M := M + 1 увеличиваем М на 1 (0 + 1 = 1)
x mod 2 <> 0 при делении 25 на 2 получаем остаток 1, условие выполняется
L := L + 1 увеличиваем L на 1 (0 + 1 = 1)
x := x div 2 целочисленное деление нашего числа x = 25 на 2 (25/2 = 12)
2) while x>0 do — пока х>0 выполняем тело цикла (12>0)
M := M + 1 увеличиваем М на 1 (1 + 1 = 2)
x mod 2 <> 0 при делении 12 на 2 остатка нет, условие не выполняется
L остается прежним (1)
x := x div 2 целочисленное деление нашего числа x = 12 на 2 (12/2 = 6)
3) while x>0 do — пока х>0 выполняем тело цикла (6>0)
M := M + 1 увеличиваем М на 1 (2 + 1 = 3)
x mod 2 <> 0 при делении 6 на 2 остатка нет, условие не выполняется
L остается прежним (1)
x := x div 2 целочисленное деление нашего числа x = 6 на 2 (6/2 = 3)
4) while x>0 do — пока х>0 выполняем тело цикла (3>0)
M := M + 1 увеличиваем М на 1 (3 + 1 = 4)
x mod 2 <> 0 при делении 3 на 2 получаем остаток 1, условие выполняется
L := L + 1 увеличиваем L на 1 (1 + 1 = 2)
x := x div 2 целочисленное деление нашего числа x = 3 на 2 (3/2 = 1)
5) while x>0 do — пока х>0 выполняем тело цикла (1>0)
M := M + 1 увеличиваем М на 1 (4 + 1 = 5)
x mod 2 <> 0 при делении 1 на 2 получаем остаток 1, условие выполняется
L := L + 1 увеличиваем L на 1 (2 + 1 = 3)
x := x div 2 целочисленное деление нашего числа x = 25 на 2 (1/2 = 0)
условие while x>0 больше не выполняеется
L = 3
M = 5
Данный алгоритм печатает на выходе количество единиц в двоичной записи числа х и количество всех цифр в этой записи. (2510 = 110012)
Получается, что по условию задачи, нужно найти наименьшее семизначное двоичное число х, в записи которого присутствует пять единиц (L = 5, M=7). Это число 10011112 = 7910.
Ответ: 79
Аналогичное задание было в демонстрационном варианте 2017 года. Посмотреть его можно здесь — Разбор 20 задания ЕГЭ 2017 по информатике из демоверсии
Аналогичное задание было в демонстрационном варианте 2016 года. Посмотреть его можно здесь — Разбор 20 задания ЕГЭ 2016 по информатике из демоверсии