
- •Введение
- •Структурные типы данных
- •Множества
- •Массивы
- •Ввод-вывод массивов
- •Вставка и удаление элемента в массив
- •Поиск
- •Последовательный поиск.
- •Бинарный поиск
- •Поиск максимального и минимального элементов массива
- •Сортировка
- •Пузырьковая сортировка
- •Сортировка методом выбора
- •Задания к лабораторной работе
- •Вопросы к лабораторной работе
- •Справочные таблицы

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Лабораторная работа № 4 Структурные типы данных. Множества. Массивы.
Введение
В лабораторной работе рассмотрен тип-множество, основные операторы для работы с этим типом. Рассмотрено описание массивов в языке Object Pascal. Рассмотрены алгоритмы ввода-вывода одно и многомерных массивов, а также алгоритмы вставки и удаления элементов. Рассмотрены некоторые алгоритмы сортировки и поиска данных в массивах.
Структурные типы данных
Структурированные типы
Массивы |
|
Множества |
|
Записи |
|
Файлы |
|
|
|
|
|
|
|
Рисунок 1 – Структурированные типы данных
В Object Pascal определено четыре структурированных типа данных: массивы, записи, множества и файлы (Рисунок 1). Все эти типы характеризуются множественностью образующих их элементов. Каждая переменная структурированного типа содержит в себе несколько компонентов, каждый компонент, в свою очередь, может также принадлежать к структурированному типу. В Object Pascal произвольная глубина вложенности типов, однако размер переменной не может превышать 2 Гб*.
Множества
Множества – это наборы однотипных логически связанных друг с другом объектов. Количество элементов, входящих в множество, может изменяться от 0 до 256. Два множества называются эквивалентными если все их элементы одинаковы, причем порядок следования элементов в множестве безразличен. Если все элементы одного множества входят также и в другое, то говорят о включении первого множества во второе. Пустое множество включается в любое другое. Синтаксис описания типа множества имеет вид
<имя типа> = set of <базовый тип>;
Здесь имя типа – правильный идентификатор; set, of – зарезервированные слова (множество, из);
базовый тип – базовый тип элементов множества в качестве которого может использоваться любой порядковый тип число значений которого не превосходит 256. Например:
type |
TChars |
= set of char; |
||
|
TDigitsChar |
= set |
of |
‘0’..’9’; |
|
TDigits |
= set |
of |
0..9; |
* Это ограничение связано с ограничениями Windows. Для Windows 3.x это ограничение 64 Кб. Для
Windows 9x, Windows NT/2000/XP это ограничение 2Гб.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
При объявлении типа TChars в качестве базового типа используется тип char т.к. число различных значений его не превосходит 256. Для остальных двух типов используется тип диапазон. Обратите внимание, что следующее определение типа ошибочно, т.к. тип Integer имеет более 256 различных значений.
type TInt=set of Integer;
Заполнить множество элементами можно с помощью конструктора множества, конструктор множества имеет следующий синтаксис
<имя множества>:=[<список элементов множества>];
Например
var |
s1:TChars; |
|
s2: TDigits; |
begin |
|
… |
|
s1:=[‘a’..’d’, ‘e’, ‘h’]; s2:=[1, 2, 5];
…
end.
Описание операций определенных над множествами приведено в таблице 1.
Таблица 1 – Операции над множествами
Операция Описание
*Пересечение множеств
+Объединение множеств
-Разность множеств
=Проверка эквивалентности, возвращает true если множества эквивалентны
<> |
Проверка не эквивалентности |
<= |
Проверка вхождения, возвращает true, если первое множество включено во |
|
второе |
>= |
Проверка вхождения, возвращает true, если второе множество включено в |
|
первое |
in |
Проверка принадлежности, возвращает true, если элемент принадлежит |
|
множеству. |
Демонстрация некоторых операций со множествами приведена в листинге 1.
Листинг 1
program Sets;
{$APPTYPE CONSOLE}
type TWeekDays=(mo, tu, we, th, fr, sa, su); TDays=set of TWeekDays;
var Days:TDays;