Просмотр задания
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a, b, t, N, Z :integer;
Function F(x: integer):integer;
begin
F := 2*(x-5)*(x-5)+4;
end;
BEGIN
a := -10; b := 10;
Z := F(a);
N := 0;
for t := a to b do begin
if (F(t)
26 января 2016
Ответы (3)
Информатик БУ # 26 января 2016 в 20:07 0
Задание не полное.
Raya Balaeva # 26 января 2016 в 20:33 0
var a, b, t, N, Z :integer;
Function F(x: integer):integer;
begin
F := 2*(x-5)*(x-5)+4;
end;
BEGIN
a := -10; b := 10;
Z := F(a);
N := 0;
for t := a to b do begin
if (F(t) <Z) then begin
N := N+1;
Z:=F(t);
end;
end;
write(N);
END.
Информатик БУ # 26 января 2016 в 20:44 0
Функция 2*(x-5)*(x-5)+4 - парабола, ветви направлены вверх.

Условие
Код PASCAL:
  1. if (F(t) <Z) then begin
  2. N := N+1;
  3. Z:=F(t);
  4. end;
проверяет, если F(t) < Z то Z присваивается F(t) и N увеличивается на 1. Условие F(t) < z будет выполняться до тих пор, пока t не станет равно координате x вершины параболы (отметил красным):

Таким образом N - это количество целых значений x от -10 до вершины параболы.

Найдём вершину.
2*(x-5)*(x-5)+4 = 2x^2-20x+54

Координата x вершины равна -b/2*a = 20/2*2 = 20/4 = 5

Получается, что условие будет выполняться при x от -10 до 5, значит к N 15 раз прибавится единица, то есть N=15.
Перевести число из в Результат: 510 = 1012