Ir ao conteúdo

Posts recomendados

Postado

Elaborar um programa que calcule e exiba o valor do número pi, utilizando essa formula pi = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 ... 1/n). Até que o valor absoluto da diferença entre o número calculado em uma interação e a anterior seja menor ou igual a 0.000005.

 

Mas o meu valor absoluto é diferente do valor de pi.

#include <stdio.h>

int main(){
	double pi = 4;
   	double operador = -1;

   double i;
   for(i = 0; i <= 0.000005; i++){
      pi += operador*(4/(3+2*i));

      operador *= -1;
   }

   printf("Resultado: %.8f\n", pi);

   return 0;
}

 

Postado
36 minutos atrás, Humberto Farrapo disse:

Elaborar um programa que calcule e exiba o valor do número pi, utilizando essa formula pi = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 ... 1/n). Até que o valor absoluto da diferença entre o número calculado em uma interação e a anterior seja menor ou igual a 0.000005.

 

Mas o meu valor absoluto é diferente do valor de pi.


#include <stdio.h>

int main(){
	double pi = 4;
   	double operador = -1;

   double i;
   for(i = 0; i <= 0.000005; i++){
      pi += operador*(4/(3+2*i));

      operador *= -1;
   }

   printf("Resultado: %.8f\n", pi);

   return 0;
}

 

 

Outra coisa... a sua condição de parada do for está errada, i nunca vai ser igual a 0.000005... no lugar desse número, você não deveria utilizar o valor da variável "pi" para checar essa condição?

 

Postado

@Luís Roberto C. da Silva Tentei fazer com o while(), o resultado deu: 3.32698413.

 

#include <stdio.h>

int main(){
	double pi = 4;
   	double operador = -1;
	double i=1;

   while(i <= pi){
      
      pi += operador*(4/(3+2*i));
      
      operador *= -1;
   	
 	  i++;
   }

   printf("Resultado: %.8f\n", pi);

   return 0;
}

 

adicionado 3 minutos depois

@dsgeverton Alterei o código e o resultado deu3.32698413.

 

Postado

"Até que o valor absoluto da diferença entre o número calculado em uma interação e a anterior seja menor ou igual a 0.000005."

#include <stdio.h>
#include <math.h>

int main(){
	double pi = 4;
	double pi_anterior = 0;
   	double operador = -4;
	double i=3;

   while(abs(pi - pi_anterior)> 0.000005){
      pi_anterior = pi;
      pi += operador/i;
      operador = -operador;
   	  i+=2;
   }

   printf("Resultado: %.8f\n", pi);

   return 0;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...