Иллюстрированный самоучитель по Delphi 7 для начинающих

Инструкция while

Рассмотрим программу, которая вычисляет значение числа л с точностью, задаваемой пользователем во время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма ряда 1-1/3 + 1/5-1/7 + 1/9 +… приближается к значению π/4 при достаточно большом количестве членов ряда.

Каждый член ряда с номером n вычисляется по формуле: 1/(2*n -1) и умножается на минус один, если n четное (определить, является ли п четным, можно проверкой остатка от деления п на 2). Вычисление заканчивается тогда, когда значение очередного члена ряда становится меньше, чем заданная точность вычисления.

Вид диалогового окна программы во время ее работы приведен на рис. 2.15. Пользователь вводит точность вычисления в поле ввода (Edit1). После щелчка на командной кнопке Вычислить (Button1) программа вычисляет значение числа л и выводит результат в поле метки (Label1).

Текст программы приведен в листинге 2.6. Как и в предыдущих примерах, основную работу выполняет процедура обработки события OnClick.

Иллюстрированный самоучитель по Delphi 7 для начинающих › Управляющие структуры языка Delphi › Инструкция while
Рис. 2.15. Диалоговое окно программы Вычисление ПИ

Листинг 2.6. Вычисление числа π.

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 ButtonlClick(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(editl.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; labell.caption: = 'ПИ равно '+ FloatToStr(pi) + #13
+ 'Просуммировано '+IntTostr(n)+' членов ряда.'; end;
end.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.