Динамической переменной
называется переменная, память для которой выделяется во время работы программы.
Выделение памяти для
динамической переменной осуществляется вызовом процедуры new. У процедуры new
один параметр — указатель на переменную того типа, память для которой надо выделить.
Например, если р является указателем на тип real, то в результате выполнения
процедуры new(p); будет выделена память для переменной типа real (создана переменная
типа real), и переменная-указатель р будет содержать адрес памяти, выделенной
для этой переменной.
У динамической переменной
нет имени, поэтому обратиться к ней можно только при помощи указателя.
Процедура, использующая
динамические переменные, перед завершением своей работы должна освободить занимаемую
этими переменными память или, как говорят программисты, уничтожить динамические
переменные". Для освобождения памяти, занимаемой динамической переменной,
используется процедура Dispose, которая имеет один параметр — указатель на динамическую
переменную.
Например, если р —
указатель на динамическую переменную, память для которой выделена инструкцией
new(p), то инструкция dispose (р) освобождает занимаемую динамической переменной
память.
Следующая процедура
(ее текст приведен в листинге 8.3) демонстрирует создание, использование и уничтожение
динамических переменных.
Листинг 8.3.
Создание, использование и уничтожение динамических переменных
procedure
TForm1.Button1Click(Sender:
TObject); var
p1,p2,p3:
Integer; // указатели на переменные типа integer
begin
// создадим динамические переменные типа integer
// (выделим память для динамических переменных)
New(p1);
New(p2);
New(p3);
р1^
:= 5;
р2^
:= 3;
р3^
:= р1^ + р2^;
ShowMessage('Сумма
чисел равна ' + IntToStr(р3^));
//
уничтожим динамические переменные
// (освободим память, занимаемую динамическими переменными)
Dispose(p1);
Dispose(р2);
Dispose(р3);
end;
В начале работы процедура создает три динамические переменные. Две переменные, на которые указывают p1 и р2, получают значение в результате выполнения инструкции присваивания. Значение третьей переменной вычисляется как сумма первых двух.
Когда тот или иной физик использует понятие "физический вакуум", он либо не понимает абсурдности этого термина, либо лукавит, являясь скрытым или явным приверженцем релятивистской идеологии.
Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.
Для защиты релятивизма Поль Дирак ввел афизическое и алогичное понятие отрицательной энергии, а затем и существование "моря" двух компенсирующих друг друга энергий в вакууме - положительной и отрицательной, а также "моря" компенсирующих друг друга частиц - виртуальных (то есть кажущихся) электронов и позитронов в вакууме.
Однако такая постановка является внутренне противоречивой (виртуальные частицы ненаблюдаемы и их по произволу можно считать в одном случае отсутствующими, а в другом - присутствующими) и противоречащей релятивизму (то есть отрицанию эфира, так как при наличии таких частиц в вакууме релятивизм уже просто невозможен). Подробнее читайте в FAQ по эфирной физике.