Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы_алгоритм_и_программир_2курс_ПИ .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
720.9 Кб
Скачать

3.Множества

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

Формат описания множественного типа:

Set of <Тип элементов>;

Значения множественного типа заключаются в квадратные скобки. Пустое множество обозначается "[]".

Операции, допустимые над множествами:

Операция

Наименование

Тип результата

Результат

+

Объединение мно­жеств

Множество

Неповторяющиеся элементы первого и второго множеств

-

Разность множеств

Множество

Элементы первого множества, не принадлежащие второму

*

Пересечение множеств

Множество

Содержит элементы, общие для обоих множеств

=

Эквивалентность

boolean

True, если множества эквивалентны

<>

Неэквивалентность

boolean

True, если множества не эквивалентны

<=

Проверка вхождения

boolean

True, если первое множество входит во второе

>=

Проверка включения

boolean

True, если первое множество включает второе

Также имеется операция in(x, s) – определение принадлежность выражения порядкового типа (х) множеству (s). Результат операции будет типа Boolean и иметь значение True, в случае соблюдения принадлежности значения множеству.

Пример. Использование множеств.

type

dCh = set of '0' ..'9';

d = set of 0..9;

var Sl,s2,s3 : dCh;

s4,s5,s6 : d;

begin

s1 : = ['1’, '2', '3'];

s2 : = ['3’, '2', '1'];

S3 : = ['2', '3'];

s4 : = [0..3, 6]:

S5 : = [4, 5];

s6 : = [3..9];

end:

В этом примере множества S1 и S2 эквивалентны, а множество S3 включено в множество S2 , но не эквивалентно ему.

В Delphi множественные типы используются, например, для описания типа кнопок или типа параметров фильтра.

Урок №12. Структурные типы данных: Записи, файлы, вариантные, классы памяти. Записи.

1. Записи.

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

Структура объявления типа записи такова:

имя_типа = record

список_полей end;

Здесь имя_типа — правильный идентификатор; record, end — зарезервированные слова (запись, конец); список__полей — последовательность разделов записи, между которыми ставится точка с запятой.

Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. За идентификатором (идентификаторами) ставится двоеточие и описание типа поля (полей), например:

type

Data = record

Day, Month: Byte;

Year : Word;

end;

var

a,b : Data;

Различают фиксированные и вариантные записи.

Фиксированная запись состоит из конечного числа по­лей, ее объявление имеет следующий формат:

Record

<Имя поля1> : <Тип поля>;

. . .

<Имя поляN> : <Тип поля>;

end;

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

type

Forma = record

Name : String;

case byte of

0: (BirthPlace: String [40]):

1: (Country : String [20]:

EntryPort : String [20]:

Date1 : 1..31;

Date2 : 1..31)

end:

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

Пример. Использование записи.

var Man: record

Name: string;

Salary: real;

Note: string;

end;

. . .

Man.Name:='Иванов M.P.';

Man.Salary:=500;

. . .