Какое наибольшее целое значение h нужно ввести чтобы программа напечатала число 30. var...

0 голосов
28 просмотров

Какое наибольшее целое значение h нужно ввести чтобы программа напечатала число 30.
var a,b,t,M,R,H :integer;
Function F(H, x: integer):integer;
begin
F := 11*(x-H)*(x-H)+13;
end;
BEGIN
readln(h);
a := 0; b := 30;
M := a; R := F(H, a);
for t := a to b do begin
if (F(H, t) > R) then begin
M := t;
R := F(H, t)
end
end;
write(m);
END.


Информатика (17 баллов) | 28 просмотров
0

А что делает эта программа, у меня вообще при любом вводе выводит 0.

0

Ерунда какая-то. Похоже, что откуда-то плохо списали. F(H,t) на самом деле t не использует....

0

да тут совершенно неправильная программа!

0

for t := a

Дан 1 ответ
0 голосов
Правильный ответ

Программа получает со ввода значение H и выполняет табуляцию функции F(t,H)=11(t-H)²+13 на интервале [0;30]. На вывод поступает значение t, при котором функция F(t,H) принимает максимальное значение.
В задании требуется определить максимальную величину H, при которой функция F(t,H) на заданном интервале принимает максимальное значение для t=30, т.е. на правом конце интервала.
График функции F(t,H) - это квадратная парабола, ветви которой направлены вверх, поэтому максимальное значение такой функции достигается на одном или одновременно на обоих концах интервала. Для нашего случая
F(30,H) > F(0,H)
11(30-H)²+13 > 11(0-H)²+13
11(900-60H+H²)+13 > 11H²+13
9900-660H+11H²+13 > 11H²+13
9900-660H > 0 ⇒ H < 9900/660 или H<15.<br>В целых числах получаем H=14 (в программе H описывается как integer).
Ответ: H=14

(142k баллов)
0

Красота!