Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Множества



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

<Переменная>: Set of <Перечислимый тип>;

Аналогично можно описать множество на основе интервального типа:

<Переменная>: Set of <Интервальный тип>;

Для присвоения значения переменной множественного типа используется специальный оператор — конструктор множества [ ]:

<Переменная>:= [<Значение 1>, …, <Значение N>];

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

Рассмотрим пример описания и использования переменной-множества, основанной на перечислимом типе данных (см. листинг 2.6).

Листинг 2.6. Пример описания и использования переменной-множества

Program UsingSets;

Type

TColors = Set of (Black, White, Red); {Описание множественного

типа данных TColors. В качестве значений переменных

данного типа в любой момент времени выполнения

программы может быть любое сочетание констант Black,

White и Red}

Var

Colors: TColors; {Описание переменной множественного типа

данных TColors}

Begin

Colors:= [Black, Red]; {Присвоение переменной Colors множества,

состоящего из двух элементов — Black и Red}

Colors:= []; {Присвоение переменной Colors пустого множества}

Colors:= [White]; {Присвоение переменной Colors множества,

состоящего из одного элемента — White}

End.

При работе с множествами используются следующие понятия:

· Объединением двух множеств называется множество, содержащее элементы, как первого, так и второго множеств. Для объединения множеств используется оператор «+». Например, после выполнения команды Colors:= [Black] + [Red], в переменной Colors будет содержаться множество [Black, Red].

· Пересечением двух множеств называется множество, содержащее элементы, включенные в оба множества. Для пересечения множеств используется оператор «*». Например, после выполнения команды Colors:= [Black, Red] * [Black, White], в переменной Colors будет содержаться множество из одного элемента Black.

· Разностью двух множеств называется множество, содержащее элементы первого множества (уменьшаемого), не содержащиеся во втором множестве. Для определения разности множеств используется оператор «-». Например, после выполнения команды Colors: = [Black, Red] - [Black, White], в переменной Colors будет содержаться множество из одного элемента Red.

· Пустым множеством называется множество, не содержащее элементов. Для присвоения переменной множественного типа пустого множества может использоваться обычный конструктор множества. Например, после выполнения команды Colors:= [ ] в переменной Colors не будет содержаться ни одного элемента. Множество станет пустым, если вычесть из него множество, содержащее все возможные элементы. Например, после выполнения команды Colors:= Colors - [Black, White, Red] множество Colors будет пустым вне зависимости от своего начального состояния.

Записи

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

Туре {Начало раздела описания типов данных}

<Имя типа> = Record {Заголовок описания записи}

<Имя переменной 1>: <Тип>; {Описание поля 1 записи}

...

<Имя переменной N>: <Тип>; {Описание поля N записи}

end; {Окончание описания типа}

Таким образом, запись, как переменная, состоит из набора разнородных переменных, называемых полями записи, каждая из которых имеет свое уникальное имя в пределах записи. В качестве <Типов переменных>, описываемых внутри записи, могут использоваться любые типы данных, встроенные в Delphi или описанные в программе до описания данной записи, в том числе массивы и другие записи.

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

Обращаться к экземплярам записей в программе можно двумя способами — как к совокупностям полей, то есть к записям в целом, так и к отдельным полям конкретной записи. Для работы с записями в целом определена всего одна операция — присвоение. При этом поля одной записи присваиваются полям другой записи, то есть копируются в них.

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

<Имя переменной-экземпляра записи>.<Имя поля>

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

Листинг 2.7. Работа с записями

Program UsingRecords;

Туре {Начало раздела описания типов данных}

THuman = Record {Заголовок описания записи}

FirstName: String; {Описание поля записи с именем FirstName}

LastName: String; {Описание поля записи с именем LastName}

Age: Integer; {Описание поля записи с именем Age)

end; {Окончание описания типа}

Var

Human1: THuman; {Описание переменной — записи типа THuman

с именем Human1}

Human2: THuman; {Описание переменной — записи типа

THuman с именем Human2}

Begin

Human1.FirstName:= 'Michael'; {Изменение поля FirstName

переменной Human1}

Ншпап2:= Human1; {Копирование значений всех полей записи

Humanl в поля записи Human2. Таким

образом поле FirstName записи Human2

станет иметь значение 'Michael'}

End.





Дата публикования: 2014-11-02; Прочитано: 509 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...