Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Разложение в ряд в Pascal (http://www.tehnari.ru/f41/t258670/)

APTEMKA 15.03.2018 21:15

Разложение в ряд в Pascal
 
Вложений: 1
Здравствуйте,форумчане.Нужна помощь с этим,вторым, заданием.Как табулировать и строить таблицу я знаю,но не знаю,как начать. Учитель объяснял отдалённо,но я понял,что необязательно считать каждый член,достаточно лишь умножать предыдущий на какое-то число d[i],которое находится по формуле: d[i]:=N[i]/N[i-1].
Вот мои тщетные попытки,уже не соображаю,если честно.Заранее спасибо.
Program bulbul;
var N:array [0..100] of double;
d:array [0..100] of double;
i:integer;x:double;
Const e=0.001;
function f(x:double):double;
begin
i:=0;
while d[i]<=e do begin
N[0]:=x;
N[1]:=-exp(ln(x)*3)/6;
d[i]:=N[i]/N[i-1];
result:=d[i]*N[i-1];
end;
end;
Var y:double;
begin
while d[i]<=e do begin
y:=f(x);
end;
writeln(y);
end.

Vladimir_S 16.03.2018 10:42

Цитата:

Сообщение от APTEMKA (Сообщение 2564235)
Вот мои тщетные попытки,уже не соображаю,если честно.Заранее спасибо.

Да пожалуйста — ничего сложного. Разбирайтесь, спрашивайте...
Код:

Program bulbul;

Const
 A=3.0;

Var
 i:integer;
 z,Step:double;

function Sum(x:double):double;
var
 S,B_old,B_new,Eps:double;
 N:Integer;
begin
 B_old:=x;
 S:=B_old;
 N:=0;
 Repeat
  Inc(N);
  B_new:=-B_old*x*x/(2*N*(2*N+1));
  S:=S+B_new;
  Eps:=Abs(B_old-B_new);
  B_old:=B_new;
 Until (1+Eps)=1;
 Sum:=S;
end;

Begin
 Step:=A/20;
 for i:=0 to 20 do
  begin
  z:=Step*i;
  Writeln(z:4:2,'    ',Sum(z),'    ',Sin(z));
  end;
 Readln;
End.



Часовой пояс GMT +4, время: 19:06.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.