Используя оператор цикла, найти сумму ряда с точностью , общий член которого
Результат напечатать, снабдив соответствующим заголовком.
Первый вариант программы.
Program dom3_1;
const e=1e-3;
var
n, i:integer;
summa,a_n,chisl,znam, factorial:real;
begin
writeln('a(n)=(n!)/(n^n), e = ',e);
summa:=0;
n:=1;
chisl:=1;
znam:=Power(n,n);
a_n:=chisl/znam;
while abs(a_n)>e do
begin
factorial:= 1;
for i:=2 to n do
factorial:= factorial * i;
chisl:=factorial;
znam:=Power(n,n);
a_n:=chisl/znam;
summa:=summa+a_n;
writeln ('n = ',n,', a_n =',a_n,', summa =', summa);
n:=n+1;
end;
writeln (' Сумма = ', summa, ', Последний член ряда = ', a_n);
writeln ('-------------------------------');
readln;
end.
Результаты выполнения программы:
a(n)=(n!)/(n^n), e = 0.001
n = 1, a_n =1, summa =1
n = 2, a_n =0.5, summa =1.5
n = 3, a_n =0.222222222222222, summa =1.72222222222222
n = 4, a_n =0.09375, summa =1.81597222222222
n = 5, a_n =0.0384, summa =1.85437222222222
n = 6, a_n =0.0154320987654321, summa =1.86980432098765
n = 7, a_n =0.00611989902166614, summa =1.87592422000932
n = 8, a_n =0.00240325927734375, summa =1.87832747928666
n = 9, a_n =0.000936656708416885, summa =1.87926413599508
Сумма = 1.87926413599508, Последний член ряда = 0.000936656708416885
-------------------------------
Второй вариант прораммы.
Program dz3_2;
const e=0.1e-2;
var n: integer; an, summa: real;
begin
summa:=1; n:=1; an:=1;
while an>e do
begin
an:= an * (Power(n,n) * (n+1))/ (Power(n+1,n+1));
summa:= summa + an; n:=n+1;
end;
writeln(' Сумма = ', summa,' Последний член ряда = ',an);
end.
Результаты выполнения программы:
Сумма = 1.87926413599508, Последний член ряда = 0.000936656708416885