Вычисление суммы ряда - Pascal ABC (12668)

Формулировка задачи:

Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x).
Program rabota3;
uses crt;
Var x,y, s, f, x_nach, delta_x, eps, t: Real;
    koy:real;
    i,x_kon:integer;
 
Begin
y:=0;
write(' x= ');
readln(x_nach);
write('количество итераций ');
readln(x_kon);
for i:=1 to x_kon do
y:=y+((2*i-1)*exp(ln(x_nach)*(2*i+1)))/(2*i*(2*i+1));
 
koy:=pi/2.0-(x+y);
writeln('функция= ',koy:5:5);
f:=(Pi/2)-ArcTan(X/SQRT(1-X*X));
writeln('arccos= ',f);
End.

Код к задаче: «Вычисление суммы ряда - Pascal ABC (12668)»

textual
uses crt;
var x, s, f, x_nach, x_kon, delta_x, eps, t: Real;
    n:Integer;
Begin
WriteLn('ввод исходных данных:');
repeat
Write('|x_nach|<1 =');
ReadLn(x_nach);
until abs(x_nach)<1;
repeat
Write('x_nach<x_kon<1 =');
ReadLn(x_kon);
until(x_kon>x_nach)and(x_kon<1);
repeat
Write('x_kon-x_nach > delta_x=');
ReadLn(delta_x);
until delta_x<x_kon-x_nach;
repeat
Write('eps>0 =');
ReadLn(eps);
until eps>0;
clrscr;
WriteLn('Для  x=',x_nach:0:3,' до ',x_kon:0:3,' шаг=',delta_x:0:3,' точность=',eps:0:6);
WriteLn;
Writeln('----------------------------------');
WriteLn('|  x    | n  |    s    |    f    |');
WriteLn('----------------------------------');
x:=x_nach;
Repeat
 t:=x;
 s:=x;
 n:=0;
 if x=0 then f:=pi/2
 else if x>0 then f:=arctan(sqrt(1 - sqr(x))/x)
 else f:=pi+arctan(sqrt(1 - sqr(x))/x);
 While (Abs(t)>eps) Do
  Begin
   n:=n+1;
   t:=t*x*x*(2*n-1)/(2*n);
   s:=s+t/(2*n+1);
  End;
 s:=pi/2-s;
 WriteLn('|',x:6:3,' |',n:2,'  |',s:8:5,' |',f:8:5,' |');
 x:=x+delta_x;
Until(x>x_kon);
WriteLn('----------------------------------');
End.

11   голосов, оценка 4.182 из 5


СОХРАНИТЬ ССЫЛКУ