Подпрограммы (функции)

advertisement
B14
var a,b,t,M,R :integer;
Function F(x: integer):integer;
begin
F := (29-x)*(29-x)+12;
end;
BEGIN
a := -20; b := 20;
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.
F(R=F(5)
F(F(t)=F(15)
For t:=a to b t := a
F(t) < R
да
M := t;
R := F(t);
В переменной M запоминается значение, если значение функции в следующей точке
меньше значения функции в предыдущей точке. По логике в M должна сохраниться
вершина параболы, т.к. после нее начинает вести себя по другому (убывать, если
возрастала; возрастать – если убывала).
Один из способов решения:
Вычислять значения ф-ции, например не с шагом 1, а с шагом 5 (10) – посмотреть как ведет
себя ф-ция. В данном случае мы увидим, что ф-ция все время убывает. Отсюда следует, что
в переменной M будет значение b.
Download