Задание 3. Тип заданий 21: программирование, подпрограммы.
  • Задание:

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

    Pascal:
    var a,b,i,M,R :integer;
    Function F(n: integer):integer;
    begin
    F := (n-4)*(n-12)+5;
    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.
  • Решение:

    Выражение (n-4)*(n-12)+5 является квадратичной функцией, графиком которой является парабола, ветви которой направлены вверх.

    Таким образом, F(i) — это значение функции на оси Y. При этом параметр i является значением на оси X.

    Цикл for i := a to b do изменяет значение i от -15 до 15, получается, что каждый повтор цикла проверяется значение F(i) с X от -15 до 15.

    Каждый повтор цикла проверяется условие:

        if (F(i) < R) then begin
           M := i;
           R := F(i)
        end;

    Так как F(i) — это Y, а i — это X, то получается, что каждый повтор цикла проверяется условие, если Y < R, то M := X и R := Y. Таким образом, R - наименьшее значение Y для данной параболы.

    Наименьшее значение Y у параболы, ветви которой направлены вверх — её вершина:

    Парабола

    На экран выводится значение M, а M принимает значение X. То есть для решения задания достаточно найти вершину параболы. Раскроем скобки в выражении:

    (n-4)*(n-12)+5 = n2-4n-12n+48+5 = n2-16n+53

    Для нахождения вершины параболы воспользуемся формулой:

    x = -b:2a = 16:2 = 8

    Ответ: 8

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

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

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