Вычислить максимальное значение функции - Pascal
Формулировка задачи:
Буду благодарен, если кто-то поможет или толкнет в нужном направлении.
Задано целое число a.
Если a > 0, то вычислить максимальное среди значений функции f(x) = (ex)/(sinx + cosx) на отрезке [-5;5] с шагом 0,2. В противном случае распечатать все положительные значения функции f(x).
Решение задачи: «Вычислить максимальное значение функции»
textual
Листинг программы
var a,x,dx,mx,f:real;
begin
write('a=');
readln(a);
x:=-5;
dx:=0.2;
while x<=5 do
begin
f:=exp(x)/(sin(x)+cos(x));
if x=-5 then mx:=f else if f>mx then mx:=f;
if(a<=0)and(f>0) then writeln('x=',x:4:1,' f=',f:6:3);
x:=x+dx;
end;
if a>0 then write('Максимальное значение f=',mx:0:3);
end.
Объяснение кода листинга программы
- Объявляются переменные:
a- для хранения введенного пользователем значения параметраaфункцииx- для хранения значения аргумента функцииdx- для хранения значения шага приращения аргументаmx- для хранения максимального значения функцииf- для хранения значения функции
- Пользователю предлагается ввести значение параметра
a. - Задаются начальные значения аргумента
xи шага приращенияdx. - Выполняется цикл
while x<=5 do, который продолжает выполнение, пока значениеxне превысит 5.- Вычисляется значение функции
fпри текущем значении аргументаxс использованием функций exp(x), sin(x) и cos(x). - Если
xравно -5, значениеmxустанавливается равным значению функцииf. Иначе, если значениеfбольше текущего значенияmx, значениеmxобновляется значениемf. - Если параметр
aменьше или равен нулю и значение функцииfбольше нуля, выводится значение аргументаxи значения функцииf.
- Вычисляется значение функции
- После выполнения цикла проверяется, больше ли значение параметра
aнуля. - Если значение параметра
aбольше нуля, выводится сообщение с максимальным значением функции.