Процедуры include и exclude

У каждой из этих процедур по два параметра. Первый – параметр-переменная множественного типа, второй – параметр-значение типа, соответствующего базовому типу для первого параметра.

Положим, S – первый параметр, а I – второй. В результате выполнения

a) процедуры INCLUDE,

b) процедуры EXCLUDE

значение S становится равным

a) S + [I],

b) S - [I].

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

Рассмотрим ряд примеров.

Пример 1.

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

Приведём два варианта реализации данного задания.

Вариант 1.

PROCEDURE …;

VAR

SL, S, G: STRING;

I, K: BYTE;

BEGIN

… // Задание значения переменной SL.

S:= ANSIUPPERCASE (SL);

G:= ’АОЭУЫЯЁЕЮИ’;

K:= 0;

FOR I:= 1 TO LENGTH (S) DO

IF POS (S[I], G) > 0

THEN K:= K + 1;

… // Вывод значения переменной K.

END;

Вариант 2.

PROCEDURE …;

VAR

SL, S: STRING;

G: SET OF CHAR;

I, K: BYTE;

BEGIN

… // Задание значения переменной SL.

S:= ANSIUPPERCASE (SL);

G:= [’А’, ’О’, ’Э’, ’У’, ’Ы’, ’Я’, ’Ё’, ’Е’, ’Ю’, ’И’];

K:= 0;

FOR I:= 1 TO LENGTH (S) DO

IF S[I] IN G

THEN K:= K + 1;

… // Вывод значения переменной K.

END;

Пример 2.

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

Приведём два варианта реализации данного задания.

Вариант 1.

PROCEDURE …;

VAR

SL, S: STRING;

G, A: SET OF CHAR;

I, K: BYTE;

C: CHAR;

BEGIN

… // Задание значения переменной SL.

S:= ANSIUPPERCASE (SL);

G:= [’А’, ’О’, ’Э’, ’У’, ’Ы’, ’Я’, ’Ё’, ’Е’, ’Ю’, ’И’];

A:= [];

FOR I:= 1 TO LENGTH (S) DO

IF S[I] IN G

THEN INCLUDE (A, S[I]);

K:= 0;

FOR C:= ’А’ TO ’Я’ DO

IF C IN A

THEN K:= K + 1;

… // Вывод значения переменной K.

END;

Вариант 2.

PROCEDURE …;

VAR

SL, S: STRING;

G, A: SET OF CHAR;

I, K: BYTE;

BEGIN

… // Задание значения переменной SL.

S:= ANSIUPPERCASE (SL);

G:= [’А’, ’О’, ’Э’, ’У’, ’Ы’, ’Я’, ’Ё’, ’Е’, ’Ю’, ’И’];

A:= [];

K:= 0;

FOR I:= 1 TO LENGTH (S) DO

IF S[I] IN G

THEN IF S[I] IN A

THEN

ELSE BEGIN

INCLUDE (A, S[I]);

K:= K + 1

END;

… // Вывод значения переменной K.

END;

Пример 3.

Пусть A – некоторое множество с элементами типа BYTE. Необходимо осуществить вывод элементов этого множества.

Приведём один из вариантов реализации данного задания.

PROCEDURE …;

VAR

A: SET OF BYTE;

I: BYTE;

BEGIN

… // Задание значения переменной A.

FOR I:= 0 TO 255 DO

IF I IN A

THEN MEMO1. LINES. ADD (INTTOSTR (I))

END;

Записи.

Тип-запись. Множество значений и описание типа.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: