Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

М н о ж е с т в а

 

Понятие множества в языке ПАСКАЛЬ основывается на математическом

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

элементов. Для построения конкретного множественного типа использует-

ся перечисляемый или интервальный тип данных. Тип элементов, состав-

ляющих множество, называется базовым типом.

Множественный тип описывается с помощью служебных слов Set of,

например:

 

type M= Set of B;

 

Здесь М - множественный тип, В - базовый тип.

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

 

type

M= Set of 'A'..'D';

var

MS: M;

 

Принадлежность переменных к множественному типу может быть опреде-

лена прямо в разделе описания переменных:

 

var

C: Set of 0..7;

 

Константы множественного типа записываются в виде заключенной в

квадратные скобки последовательности элементов или интервалов базово-

го типа, разделенных запятыми, например:

 

['A', 'C'] [0, 2, 7] [3, 7, 11..14].

 

Константа вида

 

[ ]

 

означает пустое подмножество.

Множество включает в себя набор элементов базового типа, все подм-

ножества данного множества, а также пустое подмножество. Если базовый

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

ножеств, входящих в это множество, равно 2 в степени К. Пусть имеется

переменная Р интервального типа:

 

var P: 1..3;

 

Эта переменная может принимать три различных значения - либо 1,

либо 2, либо 3. Переменная Т множественного типа

 

var T: Set of 1..3;

 

может принимать восемь различных значений:

 

[ ] [1,2]

[1] [1,3]

[2] [2,3]

[3] [1,2,3]

 

Порядок перечисления элементов базового типа в константах безраз-

личен.

Значение переменной множественного типа может быть задано конс-

трукцией вида [T], где T - переменная базового типа.

К переменным и константам множественного типа применимы операции

присваивания(:=), объединения(+), пересечения(*) и вычитания(-):

 

['A','B'] + ['A','D'] даст ['A','B','D']

['A'] * ['A','B','C'] даст ['A']

['A','B','C'] - ['A','B'] даст ['C'].

 

Результат выполнения этих операций есть величина множественного

типа.

К множественным величинам применимы операции: тождественность (=),

нетождественность (<>), содержится в (<=), содержит (>=). Результат

выполнения этих операций имеет логический тип, например:

 

['A','B'] = ['A','C'] даст FALSE

['A','B'] <> ['A','C'] даст TRUE

['B'] <= ['B','C'] даст TRUE

['C','D'] >= ['A'] даст FALSE.

 

Кроме этих операций для работы с величинами множественного типа в

языке ПАСКАЛЬ используется операция

 

in

 

проверяющая принадлежность элемента базового типа, стоящего слева

от знака операции, множеству, стоящему справа от знака операции. Ре-

зультат выполнения этой операции - булевский. Операция проверки при-

надлежности элемента множеству часто используется вместо операций от-

ношения, например:

 

A in ['A', 'B'] даст TRUE,

2 in [1, 3, 6] даст FALSE.

 

При использовании в программах данных множественного типа

выполнение операций происходит над битовыми строками данных. Каждому

значению множественного типа в памяти ЭВМ соответствует один двоичный

разряд. Например, множество

 

['A','B','C','D']

 

представлено в памяти ЭВМ битовой строкой

 

1 1 1 1.

 

Подмножества этого множества представлены строками:

 

['A','B','D'] 1 1 0 1

['B','C'] 0 1 1 0

['D'] 0 0 0 1

 

Величины множественного типа не могут быть элементами списка вво-

да - вывода.

В каждой конкретной реализации транслятора с языка ПАСКАЛЬ коли-

чество элементов базового типа, на котором строится множество, огра-

ничено. В TURBO PASCAL количество базовых элементов не должно превы-

шать 256.

Инициализация величин множественного типа производится с помощью

типизированных констант:

 

const seLit: Set of 'A'..'D'= [];

 

Проиллюстрируем применение данных множественного типа на примере.

Пример. Составить программу, которая вырабатывает и выводит на эк-

ран дисплея наборы случайных чисел для игры в "Спортлото 5 из 36".

Для заполнения каждой карточки спортлото необходимо получить набор

из пяти псевдослучайных чисел. К этим числам предъявляются два требо-

вания:

-числа должны находиться в диапазоне 1..36;

-числа не должны повторяться.

 

Program Lotto;

var

nb, k: Set of 1..36;

kol, l, i, n: Integer;

begin

Randomize;

WriteLn('ВВЕДИ kol');

ReadLn(kol);

nb:=[1..36];

for i:=1 to kol do

begin

k:=[];

for l:=1 to 5 do

begin

repeat

n:=Random(36)

until (n in nb) and not (n in k);

k:=k+[n];

Write(n:4)

end;

WriteLn

end

end.

 

 

<== предыдущая лекция | следующая лекция ==>
М о д у л и | З а п и с и
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 217; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.