Погода
Календарь
Январь 2019
Пн Вт Ср Чт Пт Сб Вс
« Сен    
 123456
78910111213
14151617181920
21222324252627
28293031  
Страницы сайта

Анализ программы с циклами и условными операторами.

Разбор 20 задания ЕГЭ по информатике 2017 года ФИПИ вариант 5 (Крылов С.С., Чуркина Т.Е.):

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

var x, L, M, D: integer; 
begin
readln(x);
D:=x;
L:=23;
M:=141;
  while L<=M do
  begin
L:=L+D;
M:=M-3*D;
  end;
writeln(L);
end.

Разберем решение по одному из возможных вариантов выполнения данного задания.
Рассмотрим алгоритм:

  • Результатом программы является вывод L.
  • Цикл перестанет работать, когда L станет больше M (т.к. while L<=M).
  • D в программе — это и есть искомый x (D:=x;).
  • В цикле оператор L:=L+D работает, как сумматор: L накапливает в себе сумму всех D, тогда как D в нашей задаче не меняется и равна введенному x.
  • Сумматор (L) до цикла обычно обнуляется, сделаем это: т.е. в строке 5 вместо L:=23представим, что L:=0. Тогда и условие задачи поменяется: т.е. вместо указанного в условии числа 53 программа выводит L равное 53-23 = 30:
...   
L:=23;
M:=141;
  while L<=M do
  begin
L:=L+D;
M:=M-3*D;
  end;
writeln(L); // выводится L = 30
end.
  • Так как по заданию необходимо найти наибольший x, то представим, что он равен как раз 30: L = L + D => L = 0 + 30 => L = 30
  • После первой итерации цикла (первого прохода) условие продолжает работать, т. е.:
  • L <= M -> истинно (30<51) цикл продолжает выполняться
  • Значит, одного прохождения цикла недостаточно, и, кроме того, 30 — четное (по заданию x — нечетное).
  • Предположим, что цикл имеет две итерации. За два прохождения цикла L увеличится на 2*D, то есть нужно взять такое D, чтобы 2*D было равно 30:
30 / 2 = 15  
То есть D = x = 15
Проверим: 
D=15 1 проход 2 проход 3 проход
L:=L+D; 23 38 53
M:=M-3*D; 141 96 51 условие перестало работать
Т.е. D=15 полностью подходит, и это наибольшее возможное число при данных условиях.
Ответ: 15

Top