Array
(
)

Calcular PI com c#

Hobr
   - 14 out 2010

Bom dia, estou começando em c#, estava tentando montar um programa que calcule o pi, mas o resultado está errado.

Aqui está o programa:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            double f,i=1,pi, pi2;

            for (i = 1; i <= 10; i++)
            {
                pi2=((i)*2+1);
                pi=(4/1)-(4/pi2);

                if (i % 2 == 0)

                { continue; }

                else
                    pi2 = pi2 * (-1);   
                                 
            Console.WriteLine("{0}", pi);
            }
           
          
            Console.ReadLine();

        }
    }
}

Se puderem me ajudar, eu agradeço.

Celonet
   - 15 out 2010

o c# ja tem uma classe que retorna PI e a Math.PI em todo caso segue dois links.   http://www.gamedev.net/community/forums/topic.asp?topic_id=427333   http://www.java2s.com/Code/ASP/Development/MathPIC.htm

Hobr
   - 15 out 2010

Muito obrigado, funcionou perfeitamente, mas a minha dúvida mesmo era com relação a este código que eu fiz, eu gostaria de fazer ele funcionar.
Deve ter algum erro de lógica ou de programação mesmo, já que eu estou começando, não consigo identificar tais erros.

Hobr
   - 15 out 2010

Eu dei uma penssada aqui e cheguei a isso:

double f, i = 1, pi, pi2;

            for (i = 1; i <= 10000; i++)
            {

            
                pi = (4 / 1) - (4 / 3) + (i= 4 / (i * 2 + 3));

                if (i % 2 != 0)
                {
                    i = Math.Pow(i, -1);
                }
            

               

                Console.WriteLine(pi);

            }

Só que o resultado não sai de 3,4
O maximo que eu cheguei foi a 3,17

Alguém pode me ajudar?

Vinicius Vieira
   - 15 out 2010

parceiro o que você ta tentando fazer um programa para ficar achando as próximas casa da dizima periódica que é o pi é isso?

Vinicius Vieira
   - 15 out 2010

Explica certinho, que no que for referente a linguagem eu posso te ajudar;

Hobr
   - 15 out 2010

Isso mesmo, a conta seria:

Pi= (4/1)-(4/3)+(4/5)-(4/7)+.....

Só que não estou conseguindo fazer.

Jackson Fraga
   - 16 out 2010

cara... o PI mto louco... até hj poucas calculador conseguem efetuar este procedimento!!!
[tagcod]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NumeroPI
{
    class Program
    {
        static void Main(string[] args)
        {
            double pi = 0;
            double divisor = 1;
           
            for (int i = 1; i < 999999999; i++)
            {
                if ((i % 2) != 0)
                {
                    pi += (4 / divisor);
                }
                else
                {
                    pi -= (4 / divisor);
                };
                divisor += 2;

                Console.WriteLine(pi.ToString());
            };

            Console.WriteLine(pi.ToString());
            Console.ReadKey();
           
        }
    }
}
[/CODDE]

Hobr
   - 16 out 2010

Obrigado Jackson, é isso mesmo o que eu queria, se não for pedir muito, você poderia me explicar algumas coisas?

O que seria esses:

pi- e p+
Console.ReadKey()
Console.WriteLine(pi.ToString()) (não poderia ser só "Console.WriteLine (pi) ?)

Jackson Fraga
   - 17 out 2010

pi- e p+
técnicamente (C#)

pi += (4 / divisor);
é a mesma coisa q...
pi

Hobr
   - 18 out 2010

Obrigado pela explicação, eu só estou com mais uma dúvida.
Acho que eu não estava usando corretamente o for, se você puder me explicar isso eu acho que entenderei como se usa corretamente:

            for (int i = 1; i < 100000; i++)
            {
                if ((i % 2) != 0)
                {
                    pi += (4 / divisor);
                }
                else
                {
                    pi -= (4 / divisor);
                };
                divisor += 2;

  Eu pensava que precisava colocar o "i" junto na conta (achava que com o "i" na conta ele faria a conta novamente e só adicionaria +1 ao i, mas você não precisou usar, a minha pergunta é, onde ele está acrescentando +1 ali?

Sei que minha pergunta é realmente tosca, mas eu não entendi, fico grato pela sua ajuda.

Vinicius Vieira
   - 19 out 2010

Ele ta acrescentando +1 ao i no próprio for onde já define o incremento a cada iteração onde tá escrito i++, ele só usa o i para saber se é hora de fazer + ou -, verificando se é impar ou par e usa o divisor que ele adiciona sempre mais 2 de forma que sempre seja ímpar.