Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках):
| Бейсик | Паскаль |
|---|---|
DIM A, B, T, M, R AS INTEGER A = -7: B = 25 M = A: R = F(A) FOR T = A TO B IF F(T) > R THEN M = T R = F(T) ENDIF NEXT T PRINT R
FUNCTION F(x) F = 281 - 2 * (17 + x) * (17 + x); END FUNCTION | var a,b,t,M,R :integer; Function F(x:integer):integer; begin F : = 281 - 2 * (17 + x) * (17 + x); end; begin a : = -7; b : = 25; M : = a; R : = F(a); for t : = a to b do begin if (F(t) > R ) then begin M : = t; R : = F(t) end end; write(R); end. |
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int F(int x) { return 281 - 2 * (17 + x) * (17 + x); } int main() { int a, b, t, M, R; a = -7; b = 25; M = a; R = F(a); for (t = a; t <= b; t++){ if (F(t) > R) { M = t; R = F(t); } } cout « R « endl; } | алг нач цел a, b, t, R, M a : = -7; b : = 25 M : = a; R : = F(a) нц для t от a до b если F(t) > R то M : = t; R : = F(t) все кц вывод R кон алг цел F(цел x) нач знач : = 281 - 2 * (17 + x) * (17 + x) кон |
| Python | |
def f(x): return 281 - 2 * (17 + x) * (17 + x) a = -7 b = 25 M = a R = f(a) for t in range(a, b+1): if (f(t) > R): M = t R = f(t); print(R)
| |
1. Алгоритм предназначен для поиска наибольшего значения функции F(t) на отрезке от a до b.
2. Заметим, что Старший коэффициент квадратного трехчлена отрицателен, следовательно, наибольшее значение достигается в вершине −17, которая не входит в интервал. Поэтому, наибольшее значение достигается на конце интервала и равно F(−7) = 81.

