[Back to MATH SWAG index] [Back to Main SWAG index] [Original]

    {
    BEN CURTIS

    Here is a Program that I have written to derive Pi.  The formula is
    4 - 4/3 + 4/5 - 4/7 + 4/9... ad infinitum.  Unfortunately, I can only get
    14 decimal places using TP 6.  if there is a way For me to be able to get
    more than 14 decimal places, please let me know.

    NB: Program Modified by Kerry Sokalsky to increase speed by over 40% -
        I'm sure tons more can be done to speed this up even more.
    }

    {$N+}

    Uses
      Dos, Crt;

    Var
      sum   : Real;
      x, d,
      Count : LongInt;
      Odd   : Boolean;

    begin
      x   := 3;
      d   := 4;
      Sum := 4;
      Odd := True;
      Count := 0;

      Writeln(#13#10, 'Iteration Value', #13#10);

      ClrScr;

      Repeat
        Inc(Count);
        if Odd then
          Sum := Sum - d/x
        else
          Sum := Sum + d/x;
        Inc(x, 2);

        Odd := (Not Odd);

        GotoXY(1, 3);
        Write(Count);
        GotoXY(12, 3);
        Write(Sum : 0 : 7);
      Until KeyPressed;

    end.

    {
            I have to warn you, it took me two hours to get a definite answer
    for 6 decimal places on my 486sx25.  I guess it would be faster on a dx.
    I'll run it on a 486dx2/66 on Tuesday and see if I can get it out to 14
    decimal places.  It takes about 135000 iterations to get 4 decimal places.
    Again, please let me know if you know of a way to get more than 14 decimal
    places -- I would love to get this sucker out to more. :)
    }

[Back to MATH SWAG index] [Back to Main SWAG index] [Original]