Разбор задачи B14 (демо ЕГЭ 2012)
Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырех языках):
Бейсик | Паскаль |
---|---|
DIM A, B, T, M, R AS INTEGER 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 FUNCTION F (x) F = 4 * (x - 1) * (x - 3) END FUNCTION |
Var a,b,t,M,R :integer; Function F(x:integer):integer; begin F:=4*(x-1)*(x-3); 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); END. |
Си | Алгоритмический язык |
int F(int x) { return 4*(x-1)*(x-3); } void main() { int a, b, t, M, R; a = -20; b = 20; M = a; R = F(a); for (t=a; t<=b; t++){ if ( F(t)<R ) { M = t; R = F(t); } } printf("%d", M); } |
алг нач цел 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 кон алг цел F(цел x) нач знач := 4*(x-1)*(x-3) кон |
Данная программа рассматривает функцию F=4*(x-1)*(x-3) на интервале, где х принадлежит [-20,20] (цикл проходит все значения х на этом интервале:-20,-19,-18 и т.д).
М хранит значение х, а R-значение F(x), где F(x)-минимальное. Т.е. программа ищет минимум функции: minF(x) и соответствующее минимуму значение х. Выводится х. Значит х мы должны определить.
1 способ.
Нарисуем,как выглядит функция 4*(x-1)*(x-3):
На рисунке видно ,что функция минимальна при х=2.
2 способ.
Преобразуем функцию F=4*(x-1)*(x-3):
4*(x-1)*(x-3)=4(х2-4х+3)=4х2-16х+12.
Найдем F´(x):
F´(x)=8х-16.
в точках экстремума F´(x)=0. Тогда 8х-16=0. Отсюда х=2.
Определяем, х=2-минимум или максимум. Подставляем в уравнение значение х меньше и больше 2-х. Определили,что это минимум. Поэтому х=2-искомое значение.