Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Информатика и программирование.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
326.66 Кб
Скачать

8 Составные типы языка Pascal

К составным типам языка Pascal относятся массив, запись, объект, множество и файл.

Массив

Имеет фиксированное число компонент, все компоненты одного типа, называемого базовым. Говорят, что массив – регулярная структура.

Массив

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

Можно применить стандартные функции low и high к идентификатору типа массива. Возвращаемые значения – нижняя и верхняя граница индекса массива.

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

Обычный прием работы с массивом – выборочное изменение его компонент, а не конструирование. Т.к. индексы массива относятся к упорядоченному типу, их можно вычислять. На место индексируемой константы можно подставлять любое индексируемое выражение. Такое свойство обеспечивает не только важное и мощное средство программирования, но и может привести к одной из наиболее часто встречающихся ошибок: результат может оказаться за пределами интервала.

Копия всего содержимого массива может быть присвоена другому массиву ТОГО ЖЕ ТИПА одной операцией.

Записи

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

Type

Person=record

firstname, lastname:string[25];

sex:(male, female);

End;

firstname, lastname, sex, – идентификаторы полей.

Var P:Person;

Begin

p.firsname:=’Petrovich’;

p.sex:=male;

End.

Записи можно также обрабатывать с помощью конструкции, называемой оператором присоединения

WITH P DO

Firstname:=’Dima’;

Marstatus:=single;

End;

Конструкция WITH R DO S означает, что внутри оператора S идентификаторы полей, относящиеся к переменной R можно использовать без префикса (сокращает текст программы, может сэкономить часто повторяющуюся операцию вычисления адреса индексируемой компоненты)

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

Записи с вариантами

На практике часто бывает удобно рассматривать 2 типа как варианты некоторого одного

Множества – сравнительно редко используемое средство языка, но в ряде случаев их применение позволяет заметно повысить наглядность, компактность и даже эффективность программ. Значения множественного типа, так же как и массивы, строятся из нескольких значений одного (базового) типа. Однако в отличие от массивов значение множественного типа может содержать любое количество различных элементов базового типа: от 0 элементов (пустое множество) до всех возможных значений базового типа. Т.е. возможным значением множественного типа являются все подмножества значений базового типа.

Слово «файл» в Pascal употребляется для объектов, состоящих из последовательности компонент всех одного типа. Последовательность устанавливает естественный порядок компонент и в любой момент доступна только одна компонента. Другие компоненты становятся доступными по мере продвижения по файлу.

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