Составить программу для вычисления значения функции - Pascal (80950)
Формулировка задачи:
Проверьте пожалуйста правильность программы.
Составить программу для вычисления значения функции y =arctg(x) с помощью разложения функции в степенной ряд:
arctg(x) = x – x3/3 + x5/5 – x7/7 + … + (–1)n x2n+1/(2n+1) + ...
var
eps:real;
x,r,k,y,c:real;
begin
writeln ('введите точность вычислений');
readln (eps);
repeat
writeln ('введите аргумент [-1;1]');
readln (x);
until ((x>=-1) and (x<=1));
k:=1;
y:=0;
r:=x;
while abs(r)>eps do
begin
y:=y+r;
k:=k+2;
r:=-r*x*x/k;
end;
writeln ( 'y = ', y:5:3);
c:= arctan(x);
writeln (c);
end.Решение задачи: «Составить программу для вычисления значения функции»
textual
Листинг программы
var eps:real;
x,r,y:real;
k:integer;
begin
repeat
write ('введите аргумент [-1;1] x=');
readln (x);
until abs(x)<=1;
repeat
write ('введите точность вычислений (0;1) eps=');
readln (eps);
until(eps>0)and(eps<1);
k:=1;
r:=x;
y:=r;
while abs(r)/(2*k-1)>eps do
begin
k:=k+1;
r:=-r*x*x;
y:=y+r/(2*k-1)
end;
writeln('y=',y:0:4);
writeln('arctg(x)=',arctan(x):0:4);
end.
Объяснение кода листинга программы
- Создается переменная
epsтипаreal, которая будет использоваться для хранения точности вычислений. - Создаются три переменные
x,rиyтипаreal, которые будут использоваться для хранения значений аргумента функции и ее производной. - Создается переменная
kтипаinteger, которая будет использоваться для хранения порядкового номера итерации. - Запускается цикл
repeat, который будет выполняться до тех пор, пока значение аргументаxне станет больше или равно единице. - Внутри цикла
repeatвыполняется чтение значения аргументаxс помощью функцииreadln(). - Вложенный цикл
repeatзапускается для вычисления значения функции и ее производной. - Внутри вложенного цикла
repeatвычисляется значениеrкак половина произведения аргументаxна себя и наk-1. - Значение
yвычисляется как сумма произведения аргументаxнаr/(2*k-1)и текущего значенияr. - Выводится значение
yс помощью функцииwriteln(). - Выводится значение арктианса аргумента
xс помощью функцииwriteln(). - Цикл
repeatзавершается. - Программа завершается.