Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Данные динамической структуры




Между объектами реального мира, поведение которых моделируют программы, существуют разнообразные, постоянно меняющиеся связи. Одни объекты могут исчезнуть, другие — появиться. Так, люди рождаются и умирают, порывают с кем-то из старых друзей и заводят новых. Ясно, что, если в программе мы хотим моделировать группы с переменным числом объектов, связи между которыми подвержены изменениям, нужны языковые средства для установления, изменения и разрыва связей между отдельными объектами, а также для порождения и уничтожения объектов. Для этой цели в Паскале

Табл. 5.1. Работа со статическими и несвязанными динамическими данными.  
Структура данных Обычные переменные Динамические переменные
1. Простая переменная Var x:Char; y: Integer; Begin x:= ’*’; y:= 3; End. Var px:^Char; py:^Integer; Begin New(px); New(py); px^:= ‘*’; py^:= 3; …… Dispose(px); Dispose(py); End.
2. Массив Var x:Array[1..3]Of Byte; i:Byte; Begin For i:=1 to 3 Do Read(x[i]); …… End; Var px:^Array[1..3]Of Byte; i:Byte; Begin New(px); For i:=1 to 3 Do Read(px^[i]); …… Dispose(px); End;
3. Запись Var x:Record a:Char; b:Byte; End; Begin x.a:= ‘*’; x.b:= 3; …… End.   Var px:^Record a:Char; b:Byte; End; Begin New(px); px^.a:= ‘*’; px^.b:= 3; …… Dispose(px); End.  

 

динамические переменные и указатели. Классификация данных динамической структуры показана на рис.4.1.

Несвязанные динамические данные классифицируются точно также, как и статические и работа с ними выполняется аналогично. Динамические свойства несвязанных динамических данных выражаются только в том, что они могут «появляться» и «исчезать» во время работы программы. Отличия использования таких данных заключаются в двух аспектах:

· в разделе Var объявляется не переменная требуемого типа, а указатель на этот тип;

· перед использованием необходимо вызвать процедуру New, а после использования – процедуру Dispose.

В качестве примера приведена таблица 5.1. сравнения работы с аналогичными статическими и несвязанными динамическими данными.

Программированию с использованием несвязанных данных посвящена многочисленная учебная литература (например, по языкам высокого уровня), поэтому основное внимание в дальнейшем будет уделено связанным динамическим данным. Связанные динамические данные характеризуются высокой гибкостью создания структур данных различной конфигурации. Это достигается благодаря возможности выделять и освобождать память под элементы в любой момент времени работы программы и возможности установить связь между любыми двумя элементами с помощью указателей.




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 768; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.