Какое число будет напечатано в результате работы следующей программы? Для Вашего удобства программа приведена на пяти языках программирования.
| Бейсик | Python |
|---|---|
DIM A, B, T, M, R AS INTEGER A = −10: B = 10 M = A : R = F(A) FOR T = A TO B IF F(T) > R THEN M = T R = F(T) END IF NEXT T PRINT R – M
FUNCTION F(x) F = (x*x−50)*(x*x−50)+16 END FUNCTION
| def F(x): return (x*x−50)*(x*x−50)+16
a = −10; b = 10 M = a; R = F(a) for t in range(a,b+1): if F(t) > R: M = t; R = F(t) print(R – M)
|
| Паскаль | Алгоритмический язык |
var a, b, t, M, R: integer;
function F(x: integer): integer; begin f := (x*x−50)*(x*x−50)+16; end;
begin a := −10; b := 10; 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 – M); end.
| алг нач цел a, b, t, M, R a := −10; b := 10 M := a; R := F(a) нц для t от a до b если F(t) > R то M := t; R := F(t) все кц вывод R – M кон
алг цел f(цел x) нач знач:=(x*x−50)*(x*x−50)+16 кон
|
| С++ | |
#include <iostream> using namespace std; long f(int x) { return (x*x−50)*(x*x−50)+16; }
int main() { int a, b, t, M, R; a = −10; b = 10; M = a; R = F(a); for (t = a; t <=b; ++t) { if (F(t) > R) { M = t; R = F(t); } } cout << R – M; return 0; }
| |
1. Алгоритм предназначен для поиска наибольшего значения функции F(t) на отрезке от a до b, нахождения разности значения с t, при котором значение F(t) будет наибольшим и вывода этой разности на экран.
2. Старший коэффициент квадратного трёхчлена положителен, следовательно, наибольшее значение достигается в вершине −10, и равно F(-10) = 2516. Теперь находим разность 2516 − (−10) = 2526.
Ответ: 2526.

