Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Множества - это наборы однотипных логически связанных друг с другом данных. Количество элементов, входящих в множество, может меняться в пределах от 0 до 255. Именно непостоянством количества своих элементов множества отличаются от массивов.
Элементы множества не пронумерованы, поэтому, нельзя обратиться к отдельному элементу множества по его индексу.
Тип элементов множества называется базовым типом множества. Область значений типа множества – это набор всевозможных подмножеств, составленных из элементов базового типа.
В ТР имеются ограничения на базовый тип. Это может быть только порядковый тип, количество значений которого не превышает 256, из простых типов к таким относятся Char, Byte, Boolean. Разрешается использовать перечисляемый тип и диапазон.
Для ряда задач применение множеств может обеспечить серьезные преимущества по сравнению с использованием других структур данных – массивов или строк.
При задании значений элементов множества используются квадратные скобки. Например: [1,2,3,4], [‘a’..’z’], [‘a’,’b’,’c’]. Множество, не содержащее элементов, называется пустым. Пустое множество может быть включено в любое другое множество.
Описание типа множества имеет вид:
<имя типа> set of <базовый тип>
Здесь <имя типа> - правильный идентификатор, set of - зарезервированные слова (множество из), <базовый тип> - базовый тип элемента множества, в качестве которого может использоваться любой порядковый тип, кроме Word, Integer, LongInt.
Два множества называются эквивалентными тогда и только тогда, когда все их элементы одинаковы, причем порядок следования элементов в множестве безразличен.
Если все элементы одного множества входят также и в другое, говорят о включении первого множества во второе. Пустое множество включается в любое другое.
Пример объявления и определения множества:
Type
MnogChar = set of '0'..'9';
MnogCifr = set of 0..9;
Var
S1, S2, S3: MnogChar;
S4, S5, S6: MnogCifr;
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, но не эквивалентно ему.
Для задания множества используется так называемый конструктор множества: список спецификаций элементов множества, отделяемых друг от друга запятыми; список обрамляется квадратными скобками. Спецификации могут быть константы или выражения базового типа, а также тип-дапазон того же базового типа.
Над множествами определены следующие операции:
- * - пересечение множеств; результат содержит элементы, общие для обоих множеств; например, S4*S6 содержит [3], S4*S5 – пустое множество.
- + - объединение множеств; результат содержит элементы первого множества, дополненные недостающими элементами из второго множества:
o S4 + S5 содержит [0,1,2,3,4,5,6];
o S5 + S6 содержит [3,4,5,6,7,8,9];
- - - разность множеств; результат содержит элементы из первого множества, которые не принадлежат второму:
o S6 – S5 содержит [3,6,7,8,9];
o S4 – S5 содержит [0,1,2,3,6];
- = - проверка эквивалентности; возвращает True, если оба множества эквивалентны.
- <> - проверка неэквивалентности; возвращает True, если оба множества неэквивалентны.
- <= - проверка вхождения; возвращает True, если первое множество включено во второе.
- >= - проверка вхождения; возвращает True, если второе множество включено в первое.
- In - проверка принадлежности; в этой операции первый элемент – выражение, а второй – множество одного и того же типа; возвращает True, если выражение имеет значение, принадлежащее множеству;
o 3 in S6 возвращает True;
o 2*2 in S1 возвращает False.
- Дополнительно к этим операциям можно использовать две процедуры.
- Include - включает новый элемент во множество. Обращение к процедуре:
o Include (S, I),
- Здесь S – множество, состоящее из элементов базового типа,
- I – новый элемент, который необходимо включить во множество.
- Exclude – исключает элемент из множества, например:
o Exclude(S, I).
Исходя из особенностей внутреннего представления множеств, можно сделать следующие выводы:
- в множестве не может быть двух одинаковых элементов;
- все операции над множествами выполняются значительно эффективней, чем над другими структурами данных.
Пример. Даны два множества M1 и M2 натуральных чисел (множества задаются произвольно). Нужно получить третье множество M3, состоящее из объединенных двух первых множеств, M4 - разность множеств М1 и М2, включить в М4 элемент, равный 22, если такого элемента нет в М4, исключить из М3 элемент, равный 15, если такой элемент есть в М3.
uses crt;
type
mnog = set of 1..100;
var
i,k: integer;
m1,m2,m3,m4: mnog;
begin
clrscr;
m1:= [1..9];
m2:= [1..7,15,18];
m3:= m1+m2;
m4:= m1-m2;
if 22 in m4 then
writeln('число 22 уже есть в M4')
else
include (m4,22);
if 15 in m3 then
exclude (m3,15);
writeln;
for i:= 1 to 100 do
if i in m4 then
write(' M4 - ',i:3);
writeln;
for i:= 1 to 100 do
if i in m3 then
write(' M3 - ',i:3);
readln;
end.
|
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!