|
Реферат: Динамические объекты \TurboPacal\ (Программирование)
ДИНАМИЧЕСКИЕ ОБЪЕКТЫ Объектные переменные вo многом подобны обычным переменным Турбо Паскаля, в частности, их можно размещать в динамической памяти. Турбо Паскаль содержит средства, облегчающие размещение объектных переменных в куче и их удаление из нее, например: var Pline: ^Tline; ....... New(Pline, Init): ....... В этом примере размещение объектной переменной (на нее указывает PLINE) в куче сопровождается одновременным обращением к конструктору TLINE.INIT для инициализации объекта и связывания виртуальных методов с вновь созданной переменной: в процедуре NEW допускается в качестве второго параметра указывать обращение к конструктору. Более того, процедуру NEW можно вызывать и как функцию - в этом случае она возвращает значение типа POINTER, указывающее на динамически распределенный объект: PLine := New(TLine); или PLine := New(TLine, Init): Обратите внимание: первым параметром процедуре New передается указатель на динамически распределяемый объект, в то время как первым параметром функции NEW - тип распределяемого объекта. И в том, и в другом случае в качестве втором параметра обращения допускается использовать вызов конструктора, однако имя конструктора не может быть составным -ведь в момент обращения динамический объект еще не создан. Например, оператор New(Pline, PLine^.Init); вызовет сообщение об ошибке. При обращении к NEW с одновременным вызовом конструктора динамическая память резервируемая с помощью специального программного кода, входящего в любой конструктор и вызываемого до начала работы исполняемой части конструктора (до begin). При этом динамическая память может оказаться исчерпанной. В этом случае стандартная функция обработки ошибок администратора кучи выдает значение 0, что вызывает аварийное завершение программы с кодом ошибки 203. Если используется нестандартная функция обработки ошибок и эта функция возвращает 1, конструктор пропускает операторы после begin и возвращает NIL. Таким образом гарантируется, что исполняемые операторы конструктора будут работать только при условии нормального распределения динамической памяти. Однако в теле конструктора может быть создан новый динамический объект, в нем - свой и т.д. Турбо Паскаль допускает произвольную глубину вложенности конструкторов. Если на каком-то уровне обнаружится нехватка динамической памяти, необходимо ликвидировать всю цепочку успешно распределенных объектов. Чтобы эта операция стала возможной, в Турбо Паскаль введена стандартная процедура без параметров FAIL, которая может вызываться только из конструктора и которая освобождает уже выделенную конструктором память, завершает его работу и возвращает NIL. Для удаления динамического объекта из кучи используется особый метод - деструктор, описываемый с помощью зарезервированного слова DESTRUCTOR. В этом методе можно предусмотреть все действия, связанные с ликвидацией динамического объекта (т.е. переменной объектного типа, размещенной в динамической памяти), например, осуществить нужную коррекцию списка динамических объектов. Обращение к деструктору указывается вторым параметром при вызове процедуры DISPOSE, например: .......... type TLine = object(Point) ...... Constructor Init; Destructor Done; end; ....... New(PLine, Init); {Размещение динамического объекта} ....... Dispose(PLine, Done); {Удаление динамического объекта} ....... При необходимости деструктор, как и любой другой метод объекта (кроме конструктора!), можно объявить виртуальным.
Реферат на тему: Динамическое представление данных
Р Е Ф Е Р А Т
на тему :
“ Динамическое представление сигналов “
Выполнил: Зазимко С.А.
Принял : Котоусов А.С.
МОСКВА
Динамическое представление сигналов.
Многие задачи радиотехники требуют специфической формы представления сигналов. Для решения этих задач необходимо располагать не только мгновенным значением сигнала, но и знать как он ведет себя во времени, знать его поведение в “прошлом” и “будущем”.
ПРИНЦИП ДИНАМИЧЕСКОГО ПРЕДСТАВЛЕНИЯ.
Данный способ получения моделей сигналов заключается в следующем:
Реальный сигнал представляется суммой некоторых элементарных сигналов, возникающих в последовательные моменты времени. Теперь, если мы устремим к нулю длительность отдельных элементарных сигналов, то в пределе получим точное представление исходного сигнала. Такой способ описания сигналов называется динамическим представлением , подчеркивая тем самым развивающийся во времени характер процесса.
На практике широкое применение нашли два способа динамического представления.
Первый способ в качестве элементарных сигналов использует ступенчатые функции, которые возникают через равные промежутки времени ( . Высота каждой ступеньки равна приращению сигнала на интервале времени (. В результате сигнал может быть представлен как на рисунке 1.
[pic]
рис. 1
При втором способе элементарными сигналами служат прямоугольные импульсы. Эти импульсы непосредственно примыкают друг к другу и образуют последовательность, вписанную в кривую или описанную вокруг нее . В этом случае исходный сигнал имеет вид как на рисунке 2.
[pic] рис. 2
Теперь рассмотрим свойства элементарных сигналов. Для начала : используемого для динамического представления по первому способу.
ФУНКЦИЯ ВКЛЮЧЕНИЯ.
Допустим имеется сигнал, математическая модель которого выражается системой :
( 0, t < -(, u(t) ( ( 0.5(t/(+1), -( ( t ( (, (1) ( 1, t > (.
Такая функция описывает процесс перехода некоторого физического объекта из “нулевого” в “единичное” состояние.
[pic]
Переход совершается по линейному закону за время 2(. Теперь если параметр ( устремить к нулю, то в пределе переход из одного состояния в другое будет происходить мгновенно. Такая математическая модель предельного сигнала получила название функции включения или функции Хевисайда :
((((( ((((((((( t < ((
((t((((((((((((((( t ( (( (2)
((((((((( t ( ((
В общем случае функция включения может быть смещена относительно начала отсчета времени на величину t0. Запись смещенной функции такова :
((((( ((((((((( t < t0(
((t - t0(((( ((((((((( t ( t0( (3)
((((((((( t ( t0(
ДИНАМИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ПРОИЗВОЛЬНОГО СИГНАЛА ПОСРЕДСТВОМ ФУНКЦИЙ ВКЛЮЧЕНИЯ.
Рассмотрим некоторый сигнал S(t), причем для определенности скажем, что S(t)=0 при t | |