logo
УП_САОД_2003

Множество

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

Множество – совокупность каких-либо однородных элементов, объединенных общим признаком и представляемых как единое целое.

Тип множество соответствует математическому понятию множества в смысле операций, которые допускаются над структурами такого типа. Множество допускает операции объединения множеств «+», пересечения множеств «*», разности множеств «-» и проверки элемента на принадлежность к множеству «in». Множества также как и массивы объединяют однотипные элементы. Поэтому в описании множества обязательно должен быть указан тип его элементов.

var

RGB, YIQ, CMY: set of char;

Здесь приведено описание трех множеств, элементами которых являются символы.

Кроме того, определены операции сравнения множеств: , , =, <>.

В отличие от массивов и записей здесь отсутствует возможность обращения к отдельным элементам. Операции выполняются по отношению ко всей совокупности элементов множества.

CMY := [‘M’, ’C’, ’Y’];

RGB := [‘R’, ’G’, ’B’];

YIQ :=[ ‘Y’, ’Q’, ’I’];

Writeln(‘Пересечение цветовых систем RGB и CMY ’, RGB*CMY);

Writeln(‘Пересечение цветовых систем YIQ и CMY ’, YIQ*CMY);

В Паскале в качестве типов элементов множества могут использоваться типы, максимальное количество значений которых не превышает 256. В памяти ЭВМ элементы множества обычно располагаются непрерывно, в соседних ячейках.

      1. Таблица

Таблица представляет собой одномерный массив (вектор), элементами которого являются записи.

Отдельная запись массива называется строкой таблицы. Чаще всего используется простая запись, то есть поля – элементарные данные. Совокупность одноименных полей всех строк называется столбцом, а конкретное поле отдельной строки – ячейкой.

type

TPerson = record

Name: string;

Address: string;

Index: longint;

end;

TTable = array[1..1000] of TPerson;

var

PersonList: TTable;

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

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

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

Если последовательность записей упорядочена относительно какого-либо столбца (поля), то такая таблица называется упорядоченной, иначе – таблица неупорядоченная.

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

PersonList[1].Index := 190000;

PersonList[1].Name := 'Иванов';

PersonList[1].Adress := 'Санкт-Петербург, ул. Б.Морская, д.67';

В памяти ЭВМ ячейки таблицы обычно располагаются построчно, непрерывно, в соседних ячейках. Размер памяти, занимаемой таблицей, есть суммарный размер ячеек.