![]() |
![]() |
![]() |
Инструкция (цикл) while
используется в том случае, если некоторую последовательность действий (инструкций
программы) надо выполнить несколько раз, причем необходимое число повторений
во время разработки программы неизвестно и может быть определено только во время
работы программы.
Типичными примерами
использования цикла while являются вычисления с заданной точностью, поиск в
массиве или в файле.
В общем виде инструкция
while записывается следующим образом:
while
условие do
begin
// здесь инструкции, которые надо выполнить несколько раз
end
где условие — выражение
логического типа, определяющее условие выполнения инструкций цикла.
1. Инструкция while
выполняется следующим образом:
2. Сначала вычисляется
значение выражения условие.
3. Если значение выражения
условие равно False (условие не выполняется), то на этом выполнение инструкции
while завершается.
4. Если значение выражения
условие равно True (условие выполняется), то выполняются расположенные между
begin и end инструкции тела цикла. После этого снова проверяется выполнение
условия. Если условие выполняется, то инструкции цикла выполняются еще раз.
И так до тех пор, пока условие не станет ложным (False).
Алгоритм, соответствующий
инструкции while, представлен на рис. 2.14.
Внимание!
Для того чтобы инструкции цикла while, которые находятся между begin и end, были выполнены хотя бы один раз, необходимо, чтобы перед выполнением инструкции while значение выражения условие было истинно.
Рис. 2.14. Алгоритм
инструкции while
Для того чтобы цикл
завершился, нужно, чтобы последовательность инструкций между begin и end влияла
на значение выражения условие (изменяла значения переменных, входящих в выражение
условие).
Рассмотрим программу,
которая вычисляет значение числа л с точностью, задаваемой пользователем во
время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма
ряда 1 - 1/3 + 1/5 -1/7 + 1/9 + ... приближается к значению л/4 при достаточно
большом количестве членов ряда.
Каждый член ряда с
номером n вычисляется по формуле: 1/(2*n - 1) и умножается на минус один, если
n четное (определить, является ли п четным, можно проверкой остатка от деления
п на 2). Вычисление заканчивается тогда, когда значение очередного члена ряда
становится меньше, чем заданная точность вычисления.
Вид диалогового окна
программы во время ее работы приведен на рис. 2.15. Пользователь вводит точность
вычисления в поле ввода (Editi). После щелчка на командной кнопке Вычислить
(Buttonl) программа вычисляет значение числа л и выводит результат в поле
метки (Labeii).
Текст программы приведен
в листинге 2.6. Как и в предыдущих примерах, основную работу выполняет процедура
обработки события OnClick.
Рис. 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.
![]() |
![]() |
![]() |
Понятие же "физического вакуума" в релятивистской квантовой теории поля подразумевает, что во-первых, он не имеет физической природы, в нем лишь виртуальные частицы у которых нет физической системы отсчета, это "фантомы", во-вторых, "физический вакуум" - это наинизшее состояние поля, "нуль-точка", что противоречит реальным фактам, так как, на самом деле, вся энергия материи содержится в эфире и нет иной энергии и иного носителя полей и вещества кроме самого эфира.
В отличие от лукавого понятия "физический вакуум", как бы совместимого с релятивизмом, понятие "эфир" подразумевает наличие базового уровня всей физической материи, имеющего как собственную систему отсчета (обнаруживаемую экспериментально, например, через фоновое космичекое излучение, - тепловое излучение самого эфира), так и являющимся носителем 100% энергии вселенной, а не "нуль-точкой" или "остаточными", "нулевыми колебаниями пространства". Подробнее читайте в FAQ по эфирной физике.
|
![]() |