Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #8  
Старый 28.11.2011, 07:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Для Лейбница и Эллера у меня получился вот такой код:

Код:
function TForm1.PI_leib(e: Extended; var Cnt : Integer): Extended;
var
  I : Integer;
  Sng : Integer;
  dx : Extended;
begin
  Cnt := 0;
  I := 1;
  Sng := 1;
  dx := 1;
  Result := 0;

  While Abs(dx) > Abs(e) Do
    Begin
      Result := Result + dx;
      Inc(Cnt);

      Inc(I,2);
      Sng := Sng * (-1);

      dx := Sng/I;
    End;

  Result := Result * 4;
end;

function TForm1.PI_eiler(e: Extended; var Cnt : Integer): Extended;
var
  I : Integer;
  dx : Extended;
begin
  Cnt := 0;
  Result := 0;
  I := 1;
  dx := 1;
  While Abs(dx) > Abs(e) Do
    Begin
      Result := Result + dx;
      Inc(Cnt);

      Inc(I);
      dx := 1/Sqr(I);
    End;

  Result := Sqrt(Result*6);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Cnt : Integer;
  P : Extended;
begin
  P := PI_leib(0.000001,Cnt);
  //P := PI_eiler(0.000001,Cnt);
  ShowMessage(Format('Pi = %.6f; %d steps.',[P,Cnt]));
end;

Последняя процка - просто пример вызова с выводом результата.
Чем выше задашь точность (чем меньше значение е), тем точнее считает. Только вот кол-во итераций получается большим...
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:35.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025