Estou com problemas resolvendo um exercício de programação, nele é preciso calcular o valor aproximado de pi somando vários termos.
O exercicio diz: Escreva uma função que calcula o valor aproximado de pi através da série: S = 1 - 1/3^3 + 1/5^3 - 1/7^3 + 1/9^3 … sendo PI = RaizCubica(S*32).
Imagem do codigo que eu escrevi:
A parte da soma esta funcionando, o problema é que na hora de tirar a raiz cubica da multiplicação o programa da o resultado valendo 1 (que supostamente era pra ser o valor de pi se estivesse correto). Alguém saberia dizer o que estou fazendo de errado?
1 curtida
Só olhando o código acho que o problema está no while(c<n+1), voce iniciou c=1 e n =0, logo na primeira vez que entra no while ele não faz nada pq c e n+1 são iguais, logo o pi fica elevado a zero e o resultado de todo número elevado a zero é 1.
Solucionei minha duvida, em pi=pow(32a,1/3) o certo seria colocar pi=pow(32a,1.0/3). É uma pequena mudança, só que mostra pro programa que os números do expoente são fracionários e não inteiros. Caso contrario o programa iria fazer a divisão 1/3=0,333… e por supostamente ser um inteiro ele iria desconsiderar a parte fracionaria e só iria ficar o zero no expoente. Dessa forma, o numero sempre seria igual a 1.
2 curtidas