Новые книги

Эта книга научит вас правильно, а главное – эффективно общаться с людьми в письменной форме. Воспользуйтесь рекомендациями авторов и вы удивитесь, насколько успешной станет ваша деловая и личная переписка.
Книга «Rational Rose 2000 и UML. Визуальное моделирование» является исчерпывающим руководством по использованию инструмента (Rational Rose 2000), процесса (Rational Unified Process) и языка (UML) для визуального представления, определения, описания и создания программной системы. Здесь изложены основы процесса разработки и дано четкое объяснение каждого этапа и элемента. Автор следует упрощенному варианту методологии Rational Unified Process и описывает процесс разработки от задумки до системного анализа и проектирования. На простом практическом примере, проходящемчерез всю книгу, наглядно демонстрируются итеративный процесс разработки, средства языка UML и возможности среды моделирования Rational Rose. В приложениях рассматриваются вопросы генерации кода и возвратного проектирования в программе Rational Rose 2000 для языков C++, Visual C++ и Visual Basic.

В книге также обсуждаются следующие темы:

— создание функций;

— поиск объектов и классов;

— стереотипы и пакеты в языке UML;

— сценарии и диаграммы взаимодействий;

— способы взаимодействия объектов;

— ассоциативные и агрегационные отношения;

— поведение и структура классов;

— наследование и отношения суперкласс/подкласс;

— поведение объектов и диаграммы переходов и состояний;

— проверка целостности модели;

— определение, представление и описание системной архитектуры;

— итерационный процесс планирования.

Процедуры работы с динамической памятью

Процедуры работы с динамической памятью

Модуль System

Procedure Dispose(var P: Pointer);

Освобождает память, распределенную для динамической переменной.

После вызова Dispose значение P не определено. При включенной директиве {$I+}, вы можете использовать исключительные ситуации, чтобы обработать эту ошибку.

 

Procedure FreeMem(var P: Pointer [; Size: Integer]);

Освобождает память, выделенную динамической переменной данного размера.

P - переменная любого типа-указателя, предварительно созданная процедурой GetMem.

Size определяет размер динамической переменной в байтах. Для корректной работы этой процедуры, Size должно быть точно равно числу байтов, предварительно распределенных для этой переменной процедурой GetMem.

FreeMem уничтожает переменную P и возвращает память «куче». Если P не указывает на память в «куче», возникает ошибка времени выполнения.

После вызова FreeMem, значение P не определено, и происходит ошибка, если Вы впоследствии ссылаетесь на P^. Вы можете использовать исключительные ситуации, чтобы обработать эту ошибку.

 

Procedure GetMem(var P: Pointer; Size: Integer);

GetMem создает динамическую переменную определенного размера и помещает адрес блока в переменную Р.

P - переменная любого типа-указателя. Size - выражение, определяющее размер в байтах динамической переменной. Вы должны ссылаться на созданную переменную как P^.

 

Procedure New(var P: Pointer);

Создает новую динамическую переменную и помещает ее адрес в переменную Р. P - переменная любого типа-указателя. Размер распределенного блока памяти равен размеру типа, на который указывает P. Если памяти недостаточно, чтобы распределить динамическую переменную, возникает исключительная ситуация EOutOfMemory.

При завершении программы, все динамические переменные, созданные процедурами New или GetMem, должны быть уничтожены соответственно процедурами Dispose или FreeMem.