Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Типы данных «множества» аналогичны перечислимым и интервальным типам данных, однако переменные множественных типов могут иметь несколько значений из описанного перечисления в каждый момент времени работы программы, причем каждое значение не может присутствовать в множестве дважды в одно и то же время. Описание переменной множественного типа выглядит следующим образом:
<Переменная>: 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!