Просмотр задания
Определите, какое число будет напечатано в результате выполнения следующего алгоритма

ПАСКАЛЬ

var a,b,t,M,R :integer;
Function F(x: integer):integer;
begin
F := 2*(x-9)*(x-9);
end;
BEGIN
a := -20; b := 20;
M := a; R := F(a);
for t := a to b do
if (F(t)< R) then begin
M := t;
R := F(t);
end;
write(M);
END.
4 февраля 2016
Ответы (2)
Информатик БУ # 4 февраля 2016 в 19:01 +1
2*(x-9)*(x-9) - квадратичная функция, график - парабола, ветви направлены вверх.

Программа
Код PASCAL:
  1. a := -20; b := 20;
  2. M := a; R := F(a);
  3. for t := a to b do
  4. if (F(t)< R) then begin
  5. M := t;
  6. R := F(t);
  7. end;
  8. write(M);
проверяет значения функции при x от -20 до 20. Точнее, значение F(t) при t от -20 до 20.
Условие
Код PASCAL:
  1. if (F(t)< R) then begin
  2. M := t;
  3. R := F(t);
  4. end;
проверяет, если значение F(t) < R, значит M:=t (то есть M присваивается икс), а R:=F(t) (то есть R присваивается игрек). То есть программа находит наименьшее значение функции 2*(x-9)*(x-9) по оси Y, и выводит на экран значение M, то есть X.
Наименьшее значение Y у параболы, ветви которой направлены вверх - её вершина. Координата X вершины определяется по формуле:
x = -b/2a
Раскроем скобки в выражении:
2*(x-9)*(x-9) = 2*(x^2-9x-9x+81) = 2x^2 - 36x + 162
Найдем вершину:
x = -b/2a = 36/4 = 9
Ответ: 9
Юра Болотин # 4 февраля 2016 в 19:54 0
Спасибо ОГРОМНОЕ !!! В школе рассказывали не очень понял , а Вы так расписали и стало сразу всё предельно ясно !
Перевести число из в Результат: 510 = 1012