Calculando o valor de π . Calcule o valor de π a partir da série infinita:

π = y - 4 3 + 4 5 + 4 7 + 4 9 + 4 11 + …

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 π = y - 4 3 + 4 5 + 4 7 + 4 9 + 4 11 + …

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 */