Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты

Факториалы в паскале???

Андрей Губарев Профи (903), закрыт 3 года назад
дан бесконечый ряд суммы бесконечно сходящегося ряда ∑(-1)^n*(x^(2n+1))/(2n+1)!
до меня не доезжает как можно зациклить факториал (2n+1) в паскале? помогите кто знает
Лучший ответ
Jurii Оракул (95985) 3 года назад
F := 1;
for n := 1 to M do
begin
F := F * (2*n) * (2*n + 1); { <--- вот так! }
....
end;
Остальные ответы
Александр Потетнин Мудрец (18895) 3 года назад
Видно же, каждый следующий член ряда, это предыдущий, умноженный на -х*х* и деленный на 2n и еще на 2n+1. А n бежит по циклу
что-то типа.

S := 0;
y := x;
For n := 1 to M do
begin
y := y * (-x*x) / (2*n*(2*n + 1));
S := S + y;
end;
Источник: Голова.
gruzМыслитель (8198) 3 года назад
"это предыдущий, умноженный на "

ето ж сумма а не произведение ???
E=E+...
gruz Мыслитель (8198) 3 года назад
выче, люди, непонял юмора, ето ж ряд Тейлора СУММА
жжоте, блин програмисты 8)

FACK(2*i+1);

----------
function fack(n :integer) : real;
var
i :integer;
z :real;
begin
z:=1;
for i:=1 to n do z:=z*i;

fack:= z;
end;
---------------

ВОТ ПРОГА:
=====================================
function Power(x:real; stepin :integer) :Real;
var
z :real;
i :integer;
begin
z:=1;
for i:=1 to stepin do z:=z*x;

Power:=z;
end;

function fack(n :integer) : real;
var
i :integer;
z :real;
begin
z:=1;
for i:=1 to n do z:=z*i;

fack:= z;
end;

var
i, n :integer;
x, E :real;

BEGIN
writeln('======== TEYLORS lines:');
write('Enter n(~~n<=16): '); readln(n); { vvod kolva 4lenov ryada }
write('Enter x (radian [ -2*pi..2*pi]): '); readln(x); { argument function }

E:=0;
for i:=0 to n do
E:=E + power(-1, i) * power(x, 2*i+1) / fack (2*i+1) ;

writeln('Teylor fnc= ', E:1:8);
writeln('Sin(x) fnc= ', sin(x):1:8);

readln;

END.
=================