Rambler's Top100

Билет 22. Вопрос 1.

Описание множеств в языке Pascal. Опреации над множествами.

 

В языке Паскаль типом-множеством называется множество-степень исходного множества объектов порядкового типа, т.е. множество возможных сочетаний объектов исходного множества. Число элементов исходного множества в Turbo Pascal не может быть больше 256, а порядковые номера элементов (т.е. значение функции Ord ) должны находиться в пределах от 0 до 255.

Для задания типа-множества следует использовать зарезервированные слова set of , а затем указать элементы этого множества, как правило, в виде перечисления или диапазона, например:

 

type

Alfa = set of ‘A' . . 'Z';

Count = set of (Plus, Minus, Mult, Divid);

Ten = set of 0 . . 9;

Number = set of ‘0' . . ‘9';

 

Введя тип-множество, можно задать переменные или типизированные константы этого типа-множества.

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

Например , для введенных выше типов можно задать такие переменные и типизированные константы:

 

var

CharVal : Alfa;

Operation : Count;

const

Index: Ten = [0, 2, 4, 6, 8];

Digit : Number = [‘0' . . ‘9'];

 

Примечание . Также, как и для других структурированных типов, тип-множество можно ввести непосредственно при задании переменных или типизированных констант:

 

var

CharVal : set of ‘A' . . ‘Z';

Operation : set of (Plus, Minus, Mult, Divid);

const

Index: set of 0 . . 9 = [0, 2, 4, 6, 8];

Digit : set of ‘0' . . ‘9' = [‘0' . . ‘9'];

 

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

 

Пример. Следующие структуры являются конструкторами множеств:

 

[Plus, Minus]

[1 . . K mod 12, 15]

[Chr(0) . . Chr (31), ‘ A ', ‘ B ']

 

В каждое множество включается и так называемое пустое множество [ ], не содержащее никаких элементов.

Конструктор множества можно использовать и непосредственно в операциях над множествами.

 

Для множеств определены следующие операции:

 

+

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

-

- разность множеств

*

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

=

- проверка эквивалентности двух множеств

<>  

- проверка неэквивалентности двух множеств

<=

- проверка, является ли левое множество подмножеством правого множества

>=

- проверка, является ли правое множество подмножеством левого множества

in

проверка, входит ли элемент, указанный слева, в множество, указанное справа.

 

Результатом операции объединения, разности или пересечения является соответствующее множество, остальные операции дают результат логического типа.

Пример программы , использующей множества (Дана строка из слов, разделенных одним из символов, описанных во множестве [',', '.', '#', '*' , '&' ]. Найдите и выведите все слова-палиндромы.

 

program zi;

uses crt;

var

st,str:string;

i,j:integer;

zz:boolean;

begin

clrscr;

readln(str);

i:=1;

repeat

st:='';

repeat

st:=st+str[i];

i:=i+1;

until (i>length(str)) or (str[i] in [',','.','#','*','&']);

zz:=true;

for j:=1 to trunc(length(st)/2) do

if st[j]<>st[length(st)-j+1] then zz:=false;

if zz=true then writeln(st);

i:=i+1;

until i>length(str);

end

Вверх

Белорусский рейтинг MyMinsk.com Сайты беларуси Регистр "ЗУБР" Каталог на TIGA.BY, а также  новости, работа, объявления, фото и многое другое Рейтинг@Mail.ru Rambler's Top100 Белорусский каталог программ Faststart - рейтинг сайтов, каталог интернет ресурсов, счетчик посещаемос­ти Яндекс.Метрика
Hosted by uCoz