Вычислить значения y, соответствующие каждому значению x (xn≤x≤xk, dx) по формуле: y=e−xsin(x),∣x∣≤a e−x2cos(x - PascalABC.NET
Формулировка задачи:
Вычислить значения y, соответствующие каждому значению x
(xn≤x≤xk, dx) по формуле:
y=e−xsin(x),∣x∣≤a
e−x2cos(x),∣x∣>a
Найти максимальное и минимальное значение у.
Входные данные: xn, xk, dx, a.
Выходные данные: множество значений у, ymax — максимальное значение у,
ymin — минимальное значение у.
пожалуйста)))) спасибо
Решение задачи: «Вычислить значения y, соответствующие каждому значению x (xn≤x≤xk, dx) по формуле: y=e−xsin(x),∣x∣≤a e−x2cos(x»
textual
Листинг программы
//для нахождения макс и мин удобнее выражение описать функцией
function f(a,x:real):real;
begin
if abs(x)<=a then f:=exp(1)-x*sin(x)
else f:=exp(1)-x*2*cos(x);
end;
var x,a,xn,xk,dx,y,min,max:real;
begin
write('a=');
readln(a);
write('Начало интервала xn=');
readln(xn);
repeat
write('Введите конец интервала xk>',xn:0:1,' xk=');
readln(xk);
until xk>xn;
repeat
write('Введите шаг табуляции dx<',xk-xn:0:2,' dx=');
readln(dx);
until dx<xk-xn;
x:=xn;
min:=f(a,x);
max:=min;
while x<xk+dx/2 do
begin
y:=f(a,x);
writeln('x=',x:5:2,' y=',y:7:3);
if y>max then max:=y
else if y<min then min:=y;
x:=x+dx;
end;
writeln('Максимум=',max:0:3);
write('Минимум=',min:0:3);
end.
Объяснение кода листинга программы
- Объявлены переменные: a, x, xn, xk, dx, y, min, max - типа real.
- Ввод значений переменных:
- a - с помощью функции readln() из диапазона (0;+∞)
- xn, xk - с помощью функции readln() из диапазона (−∞;+∞)
- dx - с помощью функции readln() из диапазона (0;xk-xn]
- Вычисление значений функции f(a,x) для x=xn и x=xk:
- если abs(x)<=a, то f(a,x)=exp(1)-x*sin(x)
- если abs(x)>a, то f(a,x)=exp(1)-2xcos(x)
- Вывод на экран значений x, y и значений функции f(a,x) с шагом dx.
- Вычисление максимального и минимального значений функции f(a,x) в интервале [xn;xk].
- Вывод на экран значений max и min.