Студопедия

КАТЕГОРИИ:


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

Массивы. Конструирование типов




Диапазоны (интервалы)

Перечисления

Конструирование типов

В этом разделе рассматривается пока лишь конструирование простых типов и массивов.

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

<перечисление>::= "(" <имя> { "," <имя> ')'.

Пример: (Su, Mo, Tu, We, Th, Fr, Sa)

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

<диапазон>::= <начальное значение> ".." <конечное значение>.

Здесь начальное и конечное значения – допустимые значения базового типа, причем, конечное значение старше (больше) начального.

Примеры:

0..5 – диапазон на целом типе. Значения 0, 1, 2, 3, 4, 5.

'A'..'Z' – диапазон на типе Char. Значения – большие буквы латинского алфавита.

Mo..Fr – диапазон на типе перечисления, описанном в примере предыдущего пункта.

Массивы относятся к сложным типам данных.

Массив – это упорядоченная последовательность значений одного и того же базового типа. Базовым типом массива может быть любой тип, кроме файлового.

<массив>::= "Array" "[" <тип индекса> "]" "of" <базовый тип>.

Индекс – это порядковый номер элемента массива. Тип индекса определяет множество возможных значений индекса и количество элементов массива. Тип индекса может быть любым ординальным типом.

Примеры:

Array [1..20] of Real – массив, содержащий 20 элементов типа Real;

array [-10..50] of char – массив из 61 элемента символьного типа;

Array [Mo..Fr] of Boolean – массив, тип индекса которого задан на основе перечисления, описанного ранее. Он содержит 5 элементов булевского типа.

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

Array [1..5] of array ['A'..'D'] of array [Boolean] of Real

Этот массив содержит 5´4´2 = 40 элементов вещественного типа.

Массивы, подобные описанному в последнем примере, называются многомерными. Для удобства описания таких массивов в Паскале предусмотрено сокращенное описание:

<массив>::= "Array" "[" <тип индекса> {"," <тип индекса> }"]" "of" <базовый тип>.

С помощью такого синтаксиса, последний пример может быть записан таким образом:

Array [1..5, 'A'..'D', Boolean] of Real




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


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


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



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




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