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

