Человек, никогда не совершавший ошибок, никогда не пробовал ничего нового.
А. Эйнштейн

ЕГЭ - Демоверсия 2018 №21

Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма. Для Вашего удобства алгоритм представлен на пяти языках программирования.

Бейсик

Python

Алгоритмический язык

DIM A, B, T, M, R AS LONG

A = -20: B = 20

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)

F = 2*(x*x-1)*(x*x-1)+27

END FUNCTION

def F(x):

return 2*(x*x-1)*(x*x-1)+27

a = -20; b=20

M=a; R=F(a)

for t in range(a,b+1):

if (F(t) <= R):

M=t; R=F(t)

print (M+R)

алг

нач

цел a, b, t, M, R

a:=-20; b:=20

M:=a; R:=F(a)

нц для t от a до b

если F(t) <= R то

M:=t; R:=F(t)

все

кц

вывод M+R

кон

алг цел F(цел x)

нач

знач:=2*(x*x-1)*(x*x-1)+27

кон

Pascal

C++

var a, b, t, M, R :longint;

function F(x: longint) : longint;

begin

F:= 2*(x*x-1)*(x*x-1)+27;

end;

begin

a:=-20; b:=20;

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.

#include <iostream>

using namespace std;

long F(long x) {

return 2*(x*x-1)*(x*x-1)+27;

}

int main() {

long a = -20, b = 20, M = a, R = F(a);

for (int t = a; t <= b; ++t) {

if (F(t)<= R) {

M = t; R = F(t);

}

}

cout << M + R;

return 0;

}

 

Решение:

В программе имеется функция F(x) = 2*(x*x-1)*(x*x-1)+27, которая позже в ней вызывается для проверки выполнения условия.

Изначально переменной М присваивается число -20, а переменной R результат функции F(-20) = 2*(-202-1)*(-202-1)+27 = 2*399*399 + 27.

Далее работает цикл со счётчиком значений от -20 до 20, в котором проверяется условие: результат функции от каждого из чисел цикла F(t) меньше или равен переменной R. При выполнении условия переменная M заменяется числом цикла t, а переменная R заменяется результатом функции F(t).

Результат всей программы складывается из переменных M (число цикла при котором выполнится последние условие) и переменной R (результат функции при числе цикла последнего выполнения условия).

Давайте разберёмся при каком числе условие выполнится последний раз. Для этого рассмотрим несколько первых условий.

R = F(a), a = -20.

t = -20

F(t)<=R /F(-20)<=F(-20)/ - условие выполняется, значит M = -20, R = 2*(-202-1)*(-202-1)+27.

t = -19

F(-19) <=R /2*(-192-1)*(-192-1)+27 <= 2*(-202-1)*(-202-1)+27/ - условие выполняется, значит М = -19, R = 2*(-192-1)*(-192-1)+27.

t = -18

F(-18) <= R /2*(-182-1)*(-182-1)+27 <= 2*(-192-1)*(-192-1)+27/ - условие выполняется, значит М = -18, R = 2*(-182-1)*(-182-1)+27.

При других отрицательных числах цикла, условие тоже будет выполняться.

Чтобы условие не выполнилось значение в скобках функции должно быть равно 0.

t = 0

F(0) <= R /2*(-1)*(-1)+27 <= 2*(-12-1)*(-12-1)+27/ 29 <= 27 – условие не выполняется, значит переменные М и R остаются с прежними значениями, M = -1, R = F(-1)

t = 1

F(1) <= R /2*(12-1)*(12-1)+27 <= 2*(-12-1)*(-12-1)+27/ 27<=27 – условие выполняется, значит M = 1, R = F(1)

t=2

F(2) <= R /2*(22-1)*(22-1)+27 <= 2*(12-1)*(12-1)+27/ 45 <= 27 – условие не выполняется, переменные M, R остаются без изменений.

При следующих числа цикла условие также не будет выполняться потому значение функции будет возрастать.

Значит в результате получили: M = 1, R = 27

Ответ : 28

ЕГЭ - Демоверсия 2017 №21

Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на пяти языках программирования).

 

Решение:

Суть программы сводится к подсчёту количества чисел в диапазоне от -100 до 100 удовлетворяющих условию: (x-16) * (x+25) <= 0

Если значение в двух скобках одновременно буду отрицательными или положительными, то результатом будет являться число больше нуля, что не подходит под условие. Поэтому рассмотрим каждую скобку в отдельности.

(1)

x - 16 < 0, при значениях х от -100 до 15;

x - 16 = 0, при значении х 16;

x - 16 > 0, при значениях х от 17 до 100

(2)

x + 25 < 0, при значениях х от -100 до -26;

x + 25 = 0, при значении х -25;

x + 25 > 0, при значениях х от -24 до 100

Так как нам не подходят варианты когда в двух скобках отрицательные и положительные значения, избавимся от них:

  • при значениях х от -100 до -26 в обоих скобках будут отрицательные значения, а после их умножения получим положительное число.

  • при значениях х от 17 до 100 в обоих скобках будут положительные значения, соответственно и после умножения получатся положительные числа.

Остаётся диапазон чисел от -25 до 16. Таких чисел 42.

 

Ответ: 42