![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток всем.
Есть такая задача
Сравнить полученные значения, в качестве критерия сравнения использовать количество членов ряда, необходимых для вычисления числа π. ************ Начал писать программу, запнулся на ряде Лейбница, да и Эйлера тоже, что-то я неправильно пишу походу - значения неверные выдаёт Помогите пожалуйста, я первый раз сам пишу программу. Код:
unit VichisleniePi;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Sharp: TEdit;
Leybnitc: TEdit;
Eyler: TEdit;
Calc: TBitBtn;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
Tochnost: TEdit;
lbl5: TLabel;
procedure CalcClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CalcClick(Sender: TObject);
var i, n, sign1: integer;
s, curr:Extended;
BEGIN
begin
n := StrToInt(Tochnost.Text);
s := 0; curr := 1;
for i := 1 to n do
begin
s := s + 1 / (curr * (2 * i - 1));
curr := - curr * 3;
end;
s := s * sqrt(12);
Sharp.Text:=FloatToStr(s);
end;
begin
s :=0;
sign1 := 1;
for i := 0 to n do ;
begin
s := s + sign1 * 4 / ( 2*i + 1);
sign1:= -sign1;
end;
Leybnitc.Text:=FloatToStr(s)
end;
begin
s:= 0;
for i := 1 to n do
begin
s:= 1/sqr(n) ;
end;
s:= Sqrt (6*s) ;
Eyler.Text:=FloatToStr(s)
end;
END;
end. |