Студопедия

КАТЕГОРИИ:


Архитектура-(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)

СД типа массив

 

Массив – последовательность элементов одного типа, называемого базовым. На математическом языке массив – это функция с ограниченной областью определения. Структура массивов однородна. Для выделения отдельной компоненты массива используется индекс. Индекс – это значение специального типа, определенного как тип индекса данного массива. Поэтому на логическом уровне СД типа массив можно записать следующим образом:

type A = array [T1] of T2,

где Т1 – базовый тип массива, Т2 – тип индекса.

Если DT1 – множество значений элементов типа Т1, DТ2 – множество значений элементов типа Т2, то А: DT1 ® DТ2 (отображение).

Кардинальное число Car(T) структуры типа Т – это множество значений, которое может принимать данная структура типа Т. Кардинальное число характеризует объем памяти, необходимый данной структуре. Для массива A: Car(A) = [Car(T2)] Car(T1).

Набор допустимых операций для СД типа массив:

1. Операция доступа (доступ к элементам массива – прямой; от размера структуры операция не зависит).

2. Операция присваивания.

3. Операция инициализации (определение начальных условий).

На физическом уровне СД типа массив представляет собой непрерывный участок памяти элементов одинакового объема. Участок памяти, необходимый для одного элемента называется слотом.

Var B: A {определяем переменную В как переменную типа массив А}

p £ i £ g, где p – индекс первого элемента массива, g – индекс последнего элемента массива, i – индекс рассматриваемого элемента.

Учитывая введенные обозначения, формула для вычисления размера слота одномерного массива выглядит следующим образом:

Adr(B[i]) = Adr(B[p]) + (i-p)*S = Adr(B[p]) – p* S + i* S,

где S – количество слов, которое необходимо для одного элемента (зависит от типа элемента), Adr(B[p]) – p* S является константой, а i* S – переменная.

Нередко физической структуре ставится в соответствие дескриптор (заголовок), который содержит общие сведения о данной физической структуре. Дескриптор хранится также как и структура в памяти. Вообще дескриптор представляет собой структуру типа запись.

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

Var A: array [-5.. 4] of Char

дескриптор будет выглядеть таким образом:

 

V A
Adr (A[-5])
-5  
Char    
       

 

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

 

 

<== предыдущая лекция | следующая лекция ==>
Уровни представления структур данных | СД типа запись (прямое декартово произведение)
Поделиться с друзьями:


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


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



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




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