Оператор присоединения.
Для получения более компактной записи составных имен в ТР предусмотрен оператор присоединения WITH , который записывается в виде
With <список> DO оператор (простой или составной) .
Здесь With (с), Do (делать) – зарезервированные слова; <список> - это ссылки на имена переменных типа запись. Список может содержать несколько ссылок.
Пример использования оператора With.
4.12. Указатели и динамическая память
Динамическая память - что это такое?
Для всех переменных, объявленных в программе, до начала выполнения программы выделяются ячейки памяти в одной непрерывной области оперативной памяти, называемой сегментом. Память выделяемая программе до начала ее выполнения называется статической.
Длина сегмента определяется архитектурой ЭВМ и обычно составляет 64 к (65536 б). Поэтому максимальный размер программы не должен превышать 64 к. Одним из способов увеличения памяти выделяемой программе является использование модулей, так как для модулей выделяется отдельный сегмент. Однако этот способ не дает желаемого результата если в программе используются большие массивы. Примером таких программ являются САПР РЭУ, в которых размер массивов зависит от количества узлов и компонентов в схеме, причем в разные моменты времени требуется разное количество памяти.
Выходом из такой ситуации является использование динамической памяти.
4.12.1. Динамическая память
Динамическая память - это часть оперативной памяти, которая может быть предоставлена программе в процессе ее выполнения. Переменные, для которых можно резервировать и освобождать память в процессе выполнения программы называются динамическими.
Размер динамической памяти можно изменять в широких пределах в процессе выполнения программы. Принято называть динамическую память «кучей». По умолчанию этот размер определяется всей доступной памятью ПК и как правило составляет не менее 200 - 300к.
В языке ТР средством для управления динамической памятью являются указатели. Указатель - это переменная, которая в качестве своего значения содержит адрес ячейки памяти. Различают типизированные и не типизированные указатели.
4.12.2. Типизированные указатели.
Типизированный указатель содержит адрес ячейки памяти, для которой известен тип значения данного, которое будет помещаться в эту ячейку памяти.
Форма объявления типизированного указателя:
имя : ^идт ;
где символ ^ является признаком того, что это указатель;
идт - идентификатор типа данного. На месте идт может располагаться стандартный тип или идентификатор типа. С помощью указателей можно размещать в динамической памяти любой из известных в Delphi типов данных.
Пример.
Var Y1 : ^ Extended;
Эта запись означает, что в программе будет присутствовать два значения в памяти: одно значение - это значение адреса ячейки памяти, второе значение - это ззначение вещественного типа. Переменная конкретного типа данных может занимать несколько байт памяти. Указатель адресует лишь первый байт ячейки, в которой хранится данное.
Пример.
область указателей область динамических переменных
адрес 5 6 22 23 24
23 86.5
ячейка ячейка
для хранения указателя У1 для хранения значения
то есть адреса ячейки в которой вещественного типа
хранится значение вещест типа
Доступ к ячейке памяти с адресом осуществляется по имени У1. Для доступа к ячейке памяти с значением вещественного типа надо к имени указателя добавить значек ^ , то есть У^. По адресу на который указывает указатель можно размещать значения данных и использовать их как простые переменные.
