Разбор 20 задания ЕГЭ 2018 по информатике и ИКТ из демонстрационного варианта

Разбор 20 задания ЕГЭ 2018 по информатике и ИКТ из демоверсии. Это задание повышенного уровня сложности. Примерное время выполнения задания 5 минут.

Проверяемые элементы содержания:
— Анализ алгоритма, содержащего цикл и ветвление.

Элементы содержания, проверяемые на ЕГЭ:
— Формализация понятия алгоритма.

Задание 20

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

Разбор 20 задания ЕГЭ 2018 по информатике и ИКТ из демонстрационного варианта

Ответ: ________

Разбор 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 по информатике из демоверсии

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

16 − 13 =