Calculando o valor de . Calcule o valor de a partir da série infinita:
Imprima uma tabela que mostre o valor de p aproximado por um termo dessa série, e depois por dois termos, três termos, e assim por diante. Quantos termos dessa série você precisa usar antes de obter 3,14? 3,141? 3,1415? 3,14159?
Passo 1
Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.
Vamos criar um programa que seja capaz de calcular o valor de através da série infinita
E descobri com quantos termos é precisa para obter os valores 3,14; 3,141; 3,1414. Para isso vamos usar uma precisão de accuracy = 400000;
Passo 2
Escrevendo o programa:
#include
int main( void )
{
long double pi = 0.0;
/* valor aproximado para pi */
long double num = 4.0;
/* numerador */
long double denom = 1.0; /* denominador do termo atual */
long int loop;
/* contador de loops */
long int accuracy;
/* número de termos */
accuracy = 400;
/* define a precisão decimal */
/* exibe os cabeçalhos das tabelas */
printf( "Precisso definida em: %ld\n", accuracy );
printf( "term\t\t pi\n" );
/* percorre cada termo */
for ( loop = 1; loop
/* se o termo for ímpar, adiciona o termo atual */
if ( loop % 2 != 0 ) {
pi += num / denom;
} /* end if */
else {
/* se o termo for par, subtrai o termo atual */
pi -= num / denom;
} /* end else */
/* exibe o número de termos e aproximado
valor para pi com 8 dígitos de precisão */
printf( "%ld\t\t%Lf\n", loop, pi );
denom += 2.0; /* atualiza o denominador */
} /* end for */
return 0;
/* indica encerramento bem sucedido */
} /* end main */
Ao compilar o código do nosso programa 3,14 ocorre com uma precisão de 627, 3,141 ocorre com uma precisão de 2458, 3,1415 ocorre com uma precisão em torno de 147.000, e 3,14159 ocorre com uma precisão em torno de 319.000.
E assim finalizamos mais um exercício galera!! Até próximo.
Resposta
#include
int main( void )
{
long double pi = 0.0;
/* valor aproximado para pi */
long double num = 4.0;
/* numerador */
long double denom = 1.0; /* denominador do termo atual */
long int loop;
/* contador de loops */
long int accuracy;
/* número de termos */
accuracy = 400;
/* define a precisão decimal */
/* exibe os cabeçalhos das tabelas */
printf( "Precisso definida em: %ld\n", accuracy );
printf( "term\t\t pi\n" );
/* percorre cada termo */
for ( loop = 1; loop
/* se o termo for ímpar, adiciona o termo atual */
if ( loop % 2 != 0 ) {
pi += num / denom;
} /* end if */
else {
/* se o termo for par, subtrai o termo atual */
pi -= num / denom;
} /* end else */
/* exibe o número de termos e aproximado
valor para pi com 8 dígitos de precisão */
printf( "%ld\t\t%Lf\n", loop, pi );
denom += 2.0; /* atualiza o denominador */
} /* end for */
return 0;
/* indica encerramento bem sucedido */
} /* end main */