Должен же быть 0 всегда при х=0. Поэтому все выражение должно обращаться в него же, а у меня, например, при m = 4, n = 0, x = 0 выдает ответ 5, т.е. пауэр возвращает 1..
Вот полный код:
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Math;
const
eps = 0.001;
var
x: extended;
m: integer;
function Virajenie: extended;
begin
result := power(1 + x, m);
end;
function Fact(n: integer): integer;
begin
if n > 1
then Fact := n * Fact(n - 1)
else Fact := 1;
end;
function Xi(n: integer): extended;
begin
Result := (m - n + 1) * power(x, n) / fact(n);
end;
function Ryad: extended;
var
n: integer;
buf: extended;
begin
n := 0;
Result := 0;
repeat
buf := Xi(n);
writeln('x[',n,'] = ', buf:6:4);
Result := Result + buf;
inc(n);
until abs(xi(n) - xi(n - 1)) < eps;
begin
write('M = ');
readln(m);
x := 0;
writeln('Virajenie = ', Virajenie:6:4);
writeln('Ryad = ', Ryad:6:4);
readln;
end.