Задание 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

Поделиться:
 
Комментарии (0)

Нет комментариев. Ваш будет первым!

Перевести число из в Результат: 510 = 1012