Динамические структуры данных. Задание практикума. Язык Паскаль. Вылиток А.А - 4 стр.

UptoLike

- 4 -
Массивы и записи будем изображать фигурами, составленными из
фигур, изображающих их компоненты и расположенных соответственно одна
под другой по вертикали или одна рядом с другой по горизонтали. Ниже
показаны порожденные описанием
var a : array[1..5] of integer;
b : record x: array[1..3] of integer; y,z: real end;
массив из пяти чисел и запись с тремя полями. В записи первое полемассив из
трех целых чисел, второе и третье полявещественные числа. Имена a и b
обозначают объекты целиком. Для указания компонент сложных объектов
используются более сложные обозначения, например a[3], b.z или
b.x[2].
Статические программные объекты порождаются автоматически
перед выполнением программы или подпрограммы, в которой они описаны, и
существуют, пока выполнение этой программы или подпрограммы не
завершится. Размер статических объектов не изменяется на протяжении всего
времени их существования.
К динамическим относятся объекты, которые с помощью специальных
действий создаются (или изменяют свой размер) уже в процессе выполнения
программы (подпрограммы).
В языке Паскаль для создания динамических объектов используется
стандартная процедура new, имеющая один параметр. Объект, созданный с
помощью new в процессе выполнения программы или подпрограммы,
существует вплоть до завершения основной программы, или до тех пор, пока он
не будет уничтожен явно с помощью другой стандартной процедуры
dispose.
Для того, чтобы в программе на Паскале обращаться к статическому
объекту, мы используем имя, данное ему в
разделе описаний. Динамические
объекты заранее не описываютсякак же к ним обращаться? Для этого вместе с
порождаемым объектом создается специальное значениессылка на этот
объект. Чтобы хранить ссылочные значения, используются переменные
специального ссылочного типа. При порождении объекта ссылка на него
помещается в переменную, указанную в качестве фактического параметра
оператора процедуры new
. Каждому динамическому объекту соответствует
своя ссылка, различные объекты имеют различные ссылки.
На рисунках будем изображать ссылку точкой и связывать ее стрелкой с
соответствующим объектом:
В машинных терминах ссылкаэто адрес объекта в оперативной памяти
компьютера. Язык Паскаль не позволяет явно записывать адреса в программе,
к тому же на этапе составления программы не известно, по какому адресу будет
a
a[3]
b
b.z b.x[2]
      Массивы и записи будем изображать фигурами, составленными из
фигур, изображающих их компоненты и расположенных соответственно одна
под другой по вертикали или одна рядом с другой по горизонтали. Ниже
показаны порожденные описанием
var a : array[1..5] of integer;
     b : record x: array[1..3] of integer; y,z: real end;
массив из пяти чисел и запись с тремя полями. В записи первое поле – массив из
трех целых чисел, второе и третье поля – вещественные числа. Имена a и b
обозначают объекты целиком. Для указания компонент сложных объектов
используются более сложные обозначения, например a[3], b.z или
b.x[2].
       a                                   b
                        a[3]
                                                          b.x[2]      b.z


       Статические программные объекты порождаются автоматически
перед выполнением программы или подпрограммы, в которой они описаны, и
существуют, пока выполнение этой программы или подпрограммы не
завершится. Размер статических объектов не изменяется на протяжении всего
времени их существования.
       К динамическим относятся объекты, которые с помощью специальных
действий создаются (или изменяют свой размер) уже в процессе выполнения
программы (подпрограммы).
       В языке Паскаль для создания динамических объектов используется
стандартная процедура new, имеющая один параметр. Объект, созданный с
помощью new в процессе выполнения программы или подпрограммы,
существует вплоть до завершения основной программы, или до тех пор, пока он
не будет уничтожен явно с помощью другой стандартной процедуры –
dispose.
       Для того, чтобы в программе на Паскале обращаться к статическому
объекту, мы используем имя, данное ему в разделе описаний. Динамические
объекты заранее не описываются – как же к ним обращаться? Для этого вместе с
порождаемым объектом создается специальное значение – ссылка на этот
объект. Чтобы хранить ссылочные значения, используются переменные
специального ссылочного типа. При порождении объекта ссылка на него
помещается в переменную, указанную в качестве фактического параметра
оператора процедуры new. Каждому динамическому объекту соответствует
своя ссылка, различные объекты имеют различные ссылки.
       На рисунках будем изображать ссылку точкой и связывать ее стрелкой с
соответствующим объектом:


       В машинных терминах ссылка – это адрес объекта в оперативной памяти
компьютера. Язык Паскаль не позволяет явно записывать адреса в программе,
к тому же на этапе составления программы не известно, по какому адресу будет

                                     -4-