Чтобы излишне не терять точность и не тратить лишнее время на вычисления, выведем рекуррентную формулу.
В задании не сказано точно, как определять условие окончания суммирования. Примем, что суммирование завершается, если очередной член ряда не может изменить накопленную сумму больше, чем на ε, т.е. |aₓ| ≤ ε.
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var (ai1,eps,s,i):=(3/2,0.001,3/2,2); while true do begin var a:=3/(4*i-2)*ai1; if Abs(a)>eps then begin i+=1; s+=a; ai1:=a end else Break end; Writeln('S = ',s:0:3) end.
Результат S = 2.532
oksit
10.04.2022
Паскаль АВС
Program LoctarUgar; uses crt; const eps=0.001;
function fact(n : integer) : longint; begin if n <= 1 then fact := 1 else fact := n * fact(n - 1); end;
var t,s:real; i:integer; begin writeln('*** Alphaeus is thinking... ***'); writeln('*** OK ***'); writeln(); writeln('Программа вычисляет частичную сумму ряда с заданной точностью'); writeln(' Общий член ряда: an = ((3^n)*n! )/ (2n)!'); writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001'); writeln(); s:=0; i:=1; t:=1; while t>eps do begin t:=(power(3,i)*fact(i))/(2*fact(2*i)); s:=s+t; writeln('a(',i,')=',t:0:6,' S=',s:0:6); i:=i+1; end; writeln(); writeln('Сумма ряда равна',s:0:6); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Загадки в которых описывается объект и его действия
В задании не сказано точно, как определять условие окончания суммирования. Примем, что суммирование завершается, если очередной член ряда не может изменить накопленную сумму больше, чем на ε, т.е.
|aₓ| ≤ ε.
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программа не работает, обновите версию!
begin
var (ai1,eps,s,i):=(3/2,0.001,3/2,2);
while true do begin
var a:=3/(4*i-2)*ai1;
if Abs(a)>eps then begin i+=1; s+=a; ai1:=a end
else Break
end;
Writeln('S = ',s:0:3)
end.
Результат
S = 2.532