Soma de série em Pascal
Boa noite/dia gente. Preciso de ajuda aqui. Tenho um exercício no qual tenho de fazer um programa em pascal com o seguinte enunciado:
Considere a soma S dos termo da série infinita apresentada abaixo:
/applications/core/interface/imageproxy/imageproxy.php?img=https://raw.githubusercontent.com/devdcardoso/farma_images/1447a8b4a8284206f2089f884aa24812f821f581/soma_infinita.png&key=9270417cd60c8ea0f136b9693cdfb12e1605ac6c2fc6fd9daf6886354a75fa06" style="border:0px;vertical-align:middle;" data-imageproxy-source="https://raw.githubusercontent.com/devdcardoso/farma_images/1447a8b4a8284206f2089f884aa24812f821f581/soma_infinita.png" />
Fazer um programa em Free Pascal que calcule o valor aproximado da soma S dos termos da série até o momento em que a diferença das normas (módulo) de 2 termos consecutivos for menor que 0,000001 ({i.e.}, norma da diferença das normas de dois termos consecutivos).
Segue meu algoritmos/programa:
program calcserie;
var
soma, a1, a2, an : real;
sinal : longint;
cont, n, fat : integer;
begin
n := 0;
a1 := 1;
a2 := 0;
soma := 0;
cont := 1;
fat := 1;
an := 1;
sinal := 1;
while (an) > 0.000001 do
begin
n := n + 2;
while cont <= n do
begin
fat := fat * cont;
cont := cont + 1;
end;
soma := (soma + (a1 * sinal));
sinal := sinal * -1;
a2 := a1;
a1 := ((1/fat));
if (a2 < 0) then
an := (a2 * -1) - a1
else if (a1 < 0) then
an := (a2) - (a1 * -1);
end;
write (soma:0:15);
end.
Meu erro está sendo a partir da 3 casa decimal

Discussão (0)
Carregando comentários...