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

UptoLike

- 6 -
Осталось выяснить, как в программе работать с порождённым
динамическим объектом, например, как присвоить ему значение. Если к
обозначению указателя приписать справа стрелку , то мы получим
обозначение объекта, ссылка на который хранится в данном указателе.
Выполнение оператора p:= 35 приведёт к тому, что целая переменная, на
которую указывает p, получит значение 35:
значение p до присваивания не
определено
значение p после присваивания
равно 35
Пусть nимя переменной типа integer. Тогда при выполнении оператора
n:=p значение динамической переменной будет присвоено статической
переменной n:
значение n до присваивания не
определено
значение n после присваивания
равно 35
Итак, приписывание стрелки справа к указателюэто способ изобразить
динамическую переменную в программе. Такое обозначение (со стрелкой
справа) называется переменная с указателем. С помощью металингвистических
формул (БНФ) подытожим все возможные обозначения переменных в языке
Паскаль:
<переменная>::= <полная переменная> | <переменная с
индексом> | <компонента записи> | <буферная переменная> |
<переменная с указателем>
<
полная переменная> ::= <имя переменной>
<переменная с индексом> ::= <переменная-массив> [
<индексное выражение>
{,<индексное выражение>}]
<компонента записи> ::= <переменная-запись>.<имя поля>|
<имя поля>
<буферная переменная> ::= <файловая переменная>
<переменная с указателем> ::= <ссылочная переменная>
<переменная-массив> ::= <переменная>
типа 'массив'
<переменная-запись> ::= <переменная>
типа 'запись'
<файловая переменная> ::= <переменная>
типа 'файл'
<ссылочная переменная> ::= <переменная>
типа 'ссылка'
<имя переменной>::=<идентификатор>
p
35
p
35
n
p
{p
:= 35}
p
35
{ n:=p
}
n
35
      Осталось выяснить, как в программе работать с порождённым
динамическим объектом, например, как присвоить ему значение. Если к
обозначению указателя приписать справа стрелку ↑, то мы получим
обозначение объекта, ссылка на который хранится в данном указателе.
Выполнение оператора p↑:= 35 приведёт к тому, что целая переменная, на
которую указывает p, получит значение 35:
p                                  {p↑:= 35}         p
                                                                          35
значение p↑ до присваивания не                  значение p↑ после присваивания
определено                                      равно 35

Пусть n – имя переменной типа integer. Тогда при выполнении оператора
n:=p↑ значение динамической переменной будет присвоено статической
переменной n:

n                                                   n       35
                                   { n:=p↑ }
p                                                    p
                    35                                                    35

значение n до присваивания не                   значение n после присваивания
определено                                      равно 35

      Итак, приписывание стрелки справа к указателю – это способ изобразить
динамическую переменную в программе. Такое обозначение (со стрелкой
справа) называется переменная с указателем. С помощью металингвистических
формул (БНФ) подытожим все возможные обозначения переменных в языке
Паскаль:
  <переменная>::= <полная переменная> | <переменная с
индексом> | <компонента записи> | <буферная переменная> |
<переменная с указателем>
    <полная переменная>          ::= <имя переменной>
  <переменная с индексом> ::= <переменная-массив> [
<индексное выражение> {,<индексное выражение>}]
  <компонента записи> ::= <переменная-запись> <имя поля>|  .
<имя поля>
    <буферная переменная>          ::= <файловая переменная>↑
    <переменная с указателем> ::= <ссылочная переменная>↑
    <переменная-массив>           ::=   <переменная>типа       'массив'
    <переменная-запись>           ::=   <переменная>типа       'запись'
    <файловая переменная>         ::=   <переменная>типа       'файл'
    <ссылочная переменная> ::=          <переменная>типа       'ссылка'
    <имя переменной>::=<идентификатор>


                                     -6-