Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
| Бейсик | Паскаль |
|---|---|
DIM A, B, T, M, R AS INTEGER A =-5: B = 5 M = A: R = F(А) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT T PRINT R FUNCTION F(x) F = (x+3)*(1-x) END FUNCTION | var a,b,t,M,R: integer; Function F(x:integer): integer; begin F := (x+3)*(1-x) end; begin a :=-5; b := 5; 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 (x+3)*(1-x); } int main() { int a, b, t, M, R; a =-5; b = 5; 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, M, R a :=-5; b := 5 M := a; R := F(a) нц для t от a до b если F(t) < R то M := t; R := F(t) все кц вывод R кон алг цел F(цел x) нач знач := (x+3)*(1-x) кон |
| Python | |
def f(x): return (x+3)*(1-x) a =-5 b = 5 M = a R = F(a) for t in range(a, b+1): if (f(t) < R): M = t R = f(t); print(R)
| |
1. Цикл "for t:=a to b do begin..." ищет наименьшее значение функции F(t) на интервале от a до b
2. график этой функции – парабола, оси которой направлены вниз, поэтому функция имеет наименьшее значение на одном из концов интервала.
3. Посчитаем значение функции на концах интервала:
4. В программе написано "write(R)", следовательно, наименьшее значение из двух получившихся и будет ответом.

