Задание 2. Тип заданий 21: программирование, подпрограммы.
- Задание:
Определите, какое значение будет выведено на экран после выполнения данной программы? Pascal: | var a,b,i,M,R :integer;
Function F(n: integer):integer;
begin
F := (n+4)*(n-6)+15;
end;
BEGIN
a := -15; b := 15;
M := a; R := F(a);
for i := a to b do begin
if (F(i) < R) then begin
M := i;
R := F(i)
end;
end;
writeln(M)
END.
|
- Решение:
Обратите внимание на функцию: F := (n+4)*(n-6)+15 Функция на графике представляет собой параболу, ветви которой направлены вверх. Теперь обратите внимание на цикл. Каждый повтор цикла переменная i увеличивается на 1 от -15 до 15. В теле цикла находится условие, если F(i) < R, то R присваивается F(i). То есть каждый повтор цикла проверяется значение функции F по оси Y, и пока это значение меньше R, то R присваивается это самое значение. Проще говоря, R — минимальное значение функции F по оси Y, и так как функция является параболой, ветви которой направлены вверх, то минимальное значение функции будет в вершине этой параболы. Каждый раз, когда условие выполняется, переменной M присваивается значение i, то есть M — координата X вершины параболы. Найдём вершину. (n+4)*(n-6)+15 — на положение по оси X +15 не влияет, мы можем от него избавиться:
(n+4)*(n-6) — раскроем скобки:
n2-2n-24 Найдём вершину: X = -b:2*a = 2:2 = 1 Ответ: 1
|
Комментарии ()
Нет комментариев. Ваш будет первым!