![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Лабораторная работа N 12
Динамические переменные
Цель и задача работы: научиться создавать, использовать и уничтожать динамические переменные (ссылки). В данной работе требуется реализовать: а) лабораторную работу номер 11 «Файлы. Работа с текстом» с помощью динамических переменных, т.е. сначала из файла считываются все данные в память, обрабатываются и затем записываются в файл; б) лабораторную работу номер 6 «Многомерные массивы» с помощью динамических переменных. Продемонстрировать знание различных схем работы с памятью: NEW – DISPOSE, GETMEM – FREEMEM, SETLENGTH с параметром-открытым массивом.
Теоретические положения
Использование при программировании статических объектов (объекты, порождаемые непосредственно перед выполнением программы, которые существуют в течении всего времени ее выполнения и размер значений которых (объем машинной памяти) не изменяется по ходу выполнения программы) может вызвать определенные трудности, особенно с точки зрения получения эффективной программы, а также эффективность бывает чрезвычайно важной при решении ряда задач. Дело в том, что иногда мы заранее (т.е. на этапе составления программы) не знаем не только размера значений того или иного программного объекта, но даже и того, будет ли нужен в той ситуации этот объект или нет. Такого рода программные объекты, которые возникают в процессе выполнения программы или размер которых определяется (или изменяется) при выполнении программы, называются динамическими объектами (или динамическими переменными). В языке программирования Паскаль для работы с динамическими объектами предусмотрен специальный тип значений - так называемый ссылочный тип. Значением этого типа является ссылка на какой-либо программный объект, по которой осуществляется непосредственный доступ к этому объекту. На машинном языке такая ссылка как раз и представлятся указателем места в памяти (адреса), соответствующего объекта. В Паскале - с целью повышения надежности программ - в задании ссылочного типа обязательно должен фигурировать тип значений тех динамических программных объектов, на которые будут указывать переменные задаваемого ссылочного типа. ^ (или стрелка вверх) - признак ссылочного типа формат описания: тип-POINTER - " ^" идентификатор-типа. Для переменных ссылочного типа определены следующие процедуры: NEW(P); - создает динамическую переменную P DISPOSE(P); - уничтожает динамическую переменную P В некоторых случаях возникает необходимость в качестве значения указателя принять ссылку, которая не связывает с данным указателем никакого объекта, т.Е. " Пустую ссылку" - NIL.
|