Вычислить значения y, соответствующие каждому значению 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»
textual
Листинг программы
function y(a,x:real):real;
begin
if abs(x)<=a then y:=exp(-x*sin(x))
else y:=exp(-x*x*cos(x))
end;
var a,xn,xk,dx,x,ymax,ymin: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:1,' dx=');
readln(dx);
until dx<xk-xn;
x:=xn;
ymax:=y(a,x);
ymin:=y(a,x);
while x<xk+dx/2 do
begin
writeln('x=',x:5:2,' y=',y(a,x):6:2);
if y(a,x)>ymax then ymax:=y(a,x)
else if y(a,x)<ymin then ymin:=y(a,x);
x:=x+dx;
end;
writeln('ymin=',ymin:0:2);
write('ymax=',ymax:0:2);
end.
Объяснение кода листинга программы
- Функция y(a,x) принимает два аргумента типа real: a и x.
- Если abs(x)<=a, то возвращает exp(-xsin(x)), иначе возвращает exp(-xx*cos(x)).
- В основной программе объявлены следующие переменные: a, xn, xk, dx, x, ymax, ymin — реальные переменные.
- Пользователю предлагается ввести значения a и интервала (xn, xk) для вычисления функции y.
- Используется цикл repeat-until для повторного запроса ввода корректного значения xk.
- Используется цикл repeat-until для повторного запроса ввода корректного значения dx.
- Переменная x инициализируется значением xn.
- Вычисляются значения ymax и ymin для начального значения x.
- Используется цикл while для вычисления и вывода значений x и y на каждой итерации.
- Если значение y на текущей итерации больше ymax, то обновляется ymax.
- Если значение y на текущей итерации меньше ymin, то обновляется ymin.
- Значение x увеличивается на dx после каждой итерации.
- По завершении цикла выводятся значения ymin и ymax.