![]() |
![]() |
![]() |
Динамической переменной
называется переменная, память для которой выделяется во время работы программы.
Выделение памяти для
динамической переменной осуществляется вызовом процедуры 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, получают значение в результате выполнения инструкции присваивания. Значение третьей переменной вычисляется как сумма первых двух.
![]() |
![]() |
![]() |
1. Электромагнитная волна (в религиозной терминологии релятивизма - "свет") имеет строго постоянную скорость 300 тыс.км/с, абсурдно не отсчитываемую ни от чего. Реально ЭМ-волны имеют разную скорость в веществе (например, ~200 тыс км/с в стекле и ~3 млн. км/с в поверхностных слоях металлов, разную скорость в эфире (см. статью "Температура эфира и красные смещения"), разную скорость для разных частот (см. статью "О скорости ЭМ-волн")
2. В релятивизме "свет" есть мифическое явление само по себе, а не физическая волна, являющаяся волнением определенной физической среды. Релятивистский "свет" - это волнение ничего в ничем. У него нет среды-носителя колебаний.
3. В релятивизме возможны манипуляции со временем (замедление), поэтому там нарушаются основополагающие для любой науки принцип причинности и принцип строгой логичности. В релятивизме при скорости света время останавливается (поэтому в нем абсурдно говорить о частоте фотона). В релятивизме возможны такие насилия над разумом, как утверждение о взаимном превышении возраста близнецов, движущихся с субсветовой скоростью, и прочие издевательства над логикой, присущие любой религии.
4. В гравитационном релятивизме (ОТО) вопреки наблюдаемым фактам утверждается об угловом отклонении ЭМ-волн в пустом пространстве под действием гравитации. Однако астрономам известно, что свет от затменных двойных звезд не подвержен такому отклонению, а те "подтверждающие теорию Эйнштейна факты", которые якобы наблюдались А. Эддингтоном в 1919 году в отношении Солнца, являются фальсификацией. Подробнее читайте в FAQ по эфирной физике.
|
![]() |