Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 Методическое пособие изучения Паскаль.doc
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
743 Кб
Скачать
☆

Var _имя множества: set_of_ базовый тип;

Например,

VAR

ГОД: SET OF 2000...2009;

С: SET OF CHAR;

Объявление множества с использованием раздела типов имеет вид:

TYPE имя типа = SET_OF_базовый тип;

VAR_имя множества: имя типа;

Примером такого описания может служить множество РАДИОСХЕМА, элементами которого являются данные типа РАДИОДЕТАЛЬ;

TYPE РАДИОДЕТАЛЬ =(РЕЗИСТОР, КОНДЕНСАТОР ИНДУКТИВНОСТЬ, РАНЗИСТОР, ТРАНСФОРМАТОР, ТУМБЛЕР, ДИОД);

РАДИОСХЕМА = SET OF РАДИОДЕТАЛЬ;

Теперь можно представить себе переменные этого типа, например

VAR

РАДИОКОНТУР, ДЕТЕКТОР, УСИЛИТЕЛЬ : РАДИОСХЕМА;

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

ФИГУРА: = [РОМБ];

или

ФИГУРА : = [КРУГ, РОМБ, КВАДРАТ];

М1: = ['А'/В', 'С'];

М2: = [1, 3, 2, 5];

МЗ: = [ ]; (*ПУСТОЕ МНОЖЕСТВО*)

В языке ПАСКАЛЬ имеются следующие операции над множест­вами:

+ объединение множеств;

* пересечение множеств;

- вычитание множеств;

= , < > проверка множеств на равенство, неравенство. Множе­ство А равно множеству В, если каждый элемент А является элемен­том множества В и, наоборот, каждый элемент множества В явля­ется элементом множества А. В противном случае множества А и В не равны друг другу;

<=, > = проверка множеств на включение. Множество А вклю­чено в множество В (А < = В или В > = А), если все элементы множества А являются также элементами множества В. Результат опе­рации А<=В (В> = А) в этом случае будет истинным (TRUE);

IN - проверка на принадлежность элемента множеству. Эта опе­рация (C_IN_А) служит для проверки, принадлежит ли элемент базового типа С множеству А.

    1. Примеры программирования задач с использованием множества

Пример 10. Из мнржества целых чисел 1…20 выделить:

множество чисел, делящихся на 6 без остатка;

множество чисел, делящихся без остатка или на 2 или на 3.

Введем обозначение для приведенной ниже программы 10.: N- размерность множества; N2 - множество чисел, делящихся на 2; N3 - множество чисел, делящихся на 3; N6 - множество чисел, делящихся на 6; N23 - множество чисел, делящихся или на 2 или на 3; K-параметр цикла.

(*Множество кратных чисел*)

PROGRAM A23 ;

CONST N=20; (* РАЗМЕРНОСТЬ МНОЖЕСТВА *)

. VAR

N2, N3, N6, N23 : SET OF INTEGER;

K: INTEGER;

BEGIN

N2 : = [ ]; (* НАЧАЛЬНОЕ ЗНАЧЕНИЕ*);

N3 : = [ ]; (* НАЧАЛЬНОЕ ЗНАЧЕНИЕ*);

FOR K : =1 TO N DO

BEGIN

IF K MOD 2 =0 THEN N2 : = N2+K;

IF K MOD 3 =0 THEN N3 : = N2+K

END;

N6 : = N2*N3;

N23 : = N2+N3;

WRITELN (‘ НА 6 ДЕЛЯТСЯ ЧИСЛА : ’);

FOR K : =1 TO N DO

IF K IN N6 THEN WRITE ( K:3 );

WRITELN;

WRITELN (‘ НА 2 ИЛИ НА 3 ДЕЛЯТСЯ ЧИСЛА :’);

FOR K : =1 TO N DO

IF K IN N23 THEN WRITE ( K:3 )

END.