- •1 Языки программирования. Язык Pascal. Описание синтаксиса языка программирования.
- •2 Лексическая структура языка Pascal. Структура Pascal-программы. Составной оператор. Константы. Переменные
- •3 Концепция переменной языка Pascal
- •4 Концепция типа данных языка Pascal
- •5 Простые типы языка Pascal
- •6 Стандартные типы языка Pascal
- •7 Операторы языка Pascal
- •8 Составные типы языка Pascal
- •9 Множества (определение, примеры, операции). Представление множеств, примеры использования
- •10 Файловый тип. Операции с файлами.
- •11 Процедуры и функции. Описание процедуры. Оператор процедуры
- •12 Параметры процедур и функций.
- •13 Процедурный тип. Передача процедур и функций в качестве параметра.
- •14 Директивы, используемые при описании процедур и функций.
- •15 Необходимость и преимущества модульного программирования. Структура модуля в языке Pascal.
- •16 Рекурсия. Рекурсия и итерация.
- •17 Линейный поиск. Поиск делением пополам (двоичный поиск).
- •18 Простые алгоритмы сортировки.
- •19 Усовершенствованные алгоритмы сортировки. Сортировка Шелла. Сортировка Шелла
- •20 Ссылочные типы. Динамические структуры данных
- •21 Связанные списки, операции над списками.
- •22 Двусвязные кольца.
- •23 Двоичные деревья поиска
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 употребляется для объектов, состоящих из последовательности компонент всех одного типа. Последовательность устанавливает естественный порядок компонент и в любой момент доступна только одна компонента. Другие компоненты становятся доступными по мере продвижения по файлу.
Число компонент, называемое длинной файла, в определении файлового типа не фиксируются. Это особенность явно отличает понятие файла от понятия массива.
