unit pi_;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;         // точность вычисления
    Button1: TButton;     // кнопка Вычислить
    Label1: TLabel;
    Label2: TLabel;       // поле выода результата
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var
   pi:real;	// вычисляемое значение ПИ
   t:real;	// точность вычисления
   n:integer;	// номер члена ряда
   elem:real;	// значение члена ряда
begin
     pi:=0;
     n:=1;

     t:=StrToFloat(edit1.text);
     elem:=1; // чтобы начать цикл
     while elem >= t do
        begin
           elem:=1/(2*n-1);
	   if n MOD 2 = 0
              then pi:=pi-elem
	      else pi:=pi+elem;
	   n:=n+1;
	end;
     pi:=pi*4;
     label1.caption:= 'ПИ равно '+ FloatToStr(pi) + #13
	           + 'Просуммировано '+IntTostr(n)+' членов ряда.';
end;

end.
