Лабораторная работа n 12.
Динамические переменные.
Цель и задача работы: научиться создавать, использовать и уничтожать динамические переменные (ссылки).
В данной работе требуется реализовать лабораторную работу номер 11 с помощью динамических переменных, т.Е. Сначала из файла считываются все данные в память, обрабатываются и оттуда записываются в файл.
Теоретические положения.
Использование при программировании статических объектов (объекты, порождаемые непосредственно перед выполнением программы, которые существуют в течении всего времени ее выполнения и размер значений которых (объем машинной памяти) не изменяется по ходу выполнения программы) может вызвать определенные трудности, особенно с точки зрения получения эффективной программы, а также эффективность бывает чрезвычайно важной при решении ряда задач. Дело в том, что иногда мы заранее (т.е. на этапе составления программы) не знаем не только размера значений того или иного программного объекта, но даже и того, будет ли нужен в той ситуации этот объект или нет. Такого рода программные объекты, которые возникают в процессе выполнения программы или размер которых определяется (или изменяется) при выполнении программы, называются динамическими объектами (или динамическими переменными).
В языке программирования Паскаль для работы с динамическими объектами предусмотрен специальный тип значений - так называемый ссылочный тип. Значением этого типа является ссылка на какой-либо программный объект, по которой осуществляется непосредственный доступ к этому объекту. На машинном языке такая ссылка как раз и представляeтся указателем места в памяти (адреса), соответствующего объекта.
В Паскале - с целью повышения надежности программ - в задании ссылочного типа обязательно должен фигурировать тип значений тех динамических программных объектов, на которые будут указывать переменные задаваемого ссылочного типа.
^ (или стрелка вверх) - признак ссылочного типа
формат описания:
тип-POINTER - "^" идентификатор-типа.
Для переменных ссылочного типа определены следующие процедуры:
NEW(P); - создает динамическую переменную P
DISPOSE(P); - уничтожает динамическую переменную P
В некоторых случаях возникает необходимость в качестве значения указателя принять ссылку, которая не связывает с данным указателем никакого объекта, т.Е. "Пустую ссылку" - NIL.