Invest-currency.ru

Как обезопасить себя в кризис?
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Операции над множествами паскаль

Pascal-Паскаль

Программирование. Множества Pascal-Паскаль

  • Скачено бесплатно: 9293
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Множества Pascal-Паскаль

Программирование. Множества Pascal-Паскаль

Множества Pascal-Паскаль

Еще одним фундаментальным классом данных являются данные, структурированные в виде множеств.

О перечисляемых типах

Мы уже рассматривали три скалярных типа, которые, в принципе, являются перечисляемыми типами, – это boolean, char и integer. В самом деле, ведь каждый из этих типов можно задать следующим образом:

(Представление #xxx означает, что должен быть взят символ, чей код в таблице ASCII равен xxx).

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

Переменные, имеющие эти типы, могут принимать значения, лежащие в границах соответствующих интервалов.

Для работы с перечисляемыми типами существуют следующие функции, которые хранятся в библиотеке системных функций, и программист имеет к ним доступ:

Пользователь имеет возможность описать собственный перечисляемый тип данных. В общем виде это описание выглядит так:

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

Например, мы можем описать тип данных color и перечислить семь основных цветов:

При этом значения получают номера в порядке их перечисления, начиная с 0. Поэтому для данного типа справедливыми будут отношения элементов:

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

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

Обе формы конструирования множеств могут сочетаться. Например,

Конструктор вида [] обозначает пустые множества.

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

Можно множественный тип определить как типизированную константу:

При описании множественного тип как констант допускается использование знака “+” (слияние множеств). Например,

Операции над множественными типами Паскаля

С множественными типами Паскаля можно выполнять действия объединения, исключения и пересечения.

Объединение множественных типов содержит элементы, которые принадлежат хотя бы одному множеству, при этом каждый элемент входит в объединение только один раз. Операция объединения множеств обозначается знаком ‘+’.

Пример множественных типов Паскаля

Возможно объединять множественные типы и отдельные элементы. Например,

Исключение определяется как разность множественных типов, в котором из уменьшаемого исключаются элементы, входящие в вычитаемое. Если в вычитаемом есть элементы, отсутствующие в уменьшаемом, то они никак не влияют на результат. Операция исключения обозначается знаком ‘-‘.

Пример исключения множественных типов Паскаля

Пресечение множественных типов– множества, содержащие элементы, одновременно входящие в оба множества. Операция пересечения множеств обозначается знаком ‘*’.

Пример пересечения множественных типов

Операции отношения множественных типов Паскаля

Наряду с рассмотренными выше операциями, над значениями множественного типа определены и некоторые операции отношения. Операндами операций над множественными значениями в общем случае являются множественные выражения. Среди операций отношения над значениями множественного типа особое место занимает специальная операция проверки вхождения элемента во множества, обозначаемая служебным словом in. В отличие от остальных операций отношения, в которых значения обоих операндов относятся к одному и тому же множественному типу значений, в операции in первый операнд должен принадлежать базовому типу, а второй – множественному типу значений, построенному на основе этого базового типа. Результатом операции отношения, как обычно, является логическое значение (true или false).

Операция сравнения на равенство множественных типов Паскаля. Множества считаются равными (эквивалентными), если все элементы одного множества присутствуют в другом и наоборот. Для операции сравнения на равенство или неравенство используются символы ‘=’ и ‘<>‘.

Тогда операция A=D имеет значение true, а операция A<>D имеет значение false.

Проверка включения. Одно множество считается включенным в другое (одно множество является подмножеством другого), если все его элементы содержатся во втором множестве. Обратное утверждение может быть и несправедливым. Операции проверки включения обозначаются ‘ =’.

Pascal | Лекция №8

Понятие множества. Множественный тип данных

СОДЕРЖАНИЕ:

  1. Понятие множества
  2. Конструктор множества
  3. Описание множеств
  4. Операции над множествами
  5. Пример программы с использованием множества

Понятие множества

Понятие множества в математике является одним из основных и обозначает некоторую неупорядоченную совокупность объектов, которые называются элементами множества. Например, множество простых чисел, множество жильцов одной улицы, множество букв алфавита и т.д. Из приведенных примеров видно, что множества могут содержать подмножества (множество жильцов одной улицы состоит из подмножеств людей, живущих в разных домах на этой улице).

Следует обратить внимание на две основных особенности множеств:

  • во множестве могут содержаться элементы только одного, базового типа (например, множество простых чисел не может содержать еще и буквы);
  • порядок элементов множества не фиксируется.
Читать еще:  Сервисы безопасности подразделяются на

Например, такая совокупность элементов <1, 2, abc, . >вообще не считается множеством, а совокупности <1, 2, 5, 8>и <8, 1, 5, 2>– эквивалентные множества.

Для представления такого типа данных и для реализации некоторых моментов математического аппарата теории множеств в Паскале существует множественный тип данных (множества).

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

В отличие от элементов массива элементы множества не пронумерованы, не упорядочены. Каждый отдельный элемент множества не идентифицируется, и с ним нельзя выполнить какие-либо действия. Действия могут выполняться только над множеством в целом.

Тип элементов множества называется базовым типом. Базовый тип может быть любой простой тип (стандартный, перечисляемый или ограниченный), за исключением типов Integer и Real, т.к. в этом случае мощность множества будет превышать 256.

Исходя из особенностей внутреннего представления множеств, можно сделать два основных вывода:

  • в множестве не может быть одинаковых элементов, что согласуется и с нашими математическими знаниями;
  • все операции над множествами выполняются значительно эффективней, чем над другими структурами данных.

Конструктор множества

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

Примеры задания множеств с помощью конструктора:

[3, 4, 7, 9, 12] – множество из пяти целых чисел;

[1..100] – множество целых чисел от 1 до 100;

[‘a’, ‘b’, ‘c’] – множество, содержащее три литеры a, b, c;

[‘A’..’Z’, ‘?’, ‘!’] – множество, содержащее все прописные латинские буквы, а также знаки ? и !.

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

Не имеет значения порядок записи элементов множества внутри конструктора. Например, [1, 2, 3] и [3, 2, 1] эквивалентные множества.

Каждый элемент во множестве учитывается только один раз. Пример: множество [1, 2, 3, 4, 5] эквивалентно [1..5].

Описание множеств

Для задания типа множества используются зарезервированные слова Set и Of, а затем указываются элементы этого множества, как правило, в виде перечисления или диапазона.

Множества могут быть описаны двумя способами:

  • Typeимя_типа=Set Ofбазовыйтип;

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

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

Здесь базовый тип — тип элементов, входящих во множество.

Нельзя вводить значения во множественную переменную оператором ввода и выводить оператором вывода. Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания следующего формата:

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

Операции над множествами

В Паскале реализованы основные операции теории множеств. Это объединение, пересечение, разность множеств. Во всех таких операциях операнды и результаты есть множественные величины одинакового базового типа.

  • Объединение множеств. Объединением двух множеств A и B называется множество, состоящее из всех элементов, принадлежащих хотя бы одному из множеств A и B. Знак операции объединения в Паскале +.

Пример: [1, 2, 3, 4] + [3, 4, 5, 6] ? [1, 2, 3, 4, 5, 6]

  • Пересечение множеств. Пересечением двух множеств AиB называется множество, состоящее из всех элементов принадлежащих одновременно множеству A и множеству B. Знак операции пересечения в Паскале *.

Пример: [1, 2, 3, 4] * [3, 4, 5, 6] ? [3, 4]

  • Разность множеств. Разностью двух множеств A и B называется множество, состоящее из элементов множества A, не принадлежащих множеству B. Знак операции пересечения в Паскале .

Пример: [1, 2, 3, 4] [3, 4, 5, 6] ? [1, 2]

[3, 4, 5, 6] [1, 2, 3, 4] ? [5, 6]

Очевидно, что операции объединения и пересечения – перестановочны, а разность множеств – не перестановочная операция.

    Операции отношения. Множества можно сравнивать между собой, т.е. для них определены операции отношения. Результатом отношения является логическая величина true или false. Для множеств применимы все операции отношения, за исключением > иB

Множество – это набор взаимосвязанных по какому-либо признаку или группе признаков однотипных элементов. Множественный тип в Паскаль относится к структурированным типам данных.

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

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

type = set of базовый тип

Множество формируется на основе базового типа. Базовым типом в PascalABC.NET может быть любой тип данных, в том числе строковой.

Множественный тип может быть задан, в том числе, без предварительного описания, например:

  • type
  • colorSet = set of (red, green, blue);
  • strSet = set of string;
  • var
  • colS: colorSet;
  • examS: strSet;
  • digS, numS: set of integer;
  • letterS: set of char;
Читать еще:  Из чего состоит задача математического программирования

Переменная типа множество может включать в себя несколько значений базового типа, при этом каждый элемент входит в структуру только один раз. Значение типа множество формируется с помощью конструкции следующего вида:
[список значений]
Списком значений могут быть перечисленные через запятую, выражения базового типа или их диапазоны (для порядковых типов) в виде a..b . Если список значений пуст, то множество пустое. По присваиванию пустое множество является совместимым множеством любого типа.

  • examS := [‘Информатика’, ‘Математика’, ‘Физика’];
  • digS := [1..7];
  • numS := [1..3, 5, 7];
  • colS := [];

Для добавления элементов к множеству используется:

  • стандартная процедура Include (sSet, x)
  • конструкция sSet += [x]

Для удаления элементов из множества используется:

  • стандартная процедура Exclude (sSet, x)
  • конструкция sSet -= [x]

Операции над множествами

Над множествами в в PascalABC.NET определены операции объединение, пересечение, разность, группа операций отношения, операция in .

  • = (равенство): два множества считаются равными, если они совпадают, причем порядок элементов в сравниваемых множествах значения не имеет;
  • <> (неравенство): два множества считаются не равными, если они не совпадают: отличаются по количеству элементов или по значению хотя бы одного элемента;
  • >= (нестрого содержит): результат А >= В , равен true , если все элементы В содержатся в А;
  • (строго содержит): результат А > В , равен true , если все элементы В содержатся в А и при этом множество А содержит хотя бы на один элемент больше;
  • numS); результат True

Операция in применяется для проверки принадлежности элемента множеству. Обычно данная операция используется с условным оператором, например:

  • if ‘Информатика’ in examS then
  • writeln(‘YES’)
  • else
  • writeln(‘NO’);

Операция объединение + : результатом объединения двух множеств является множество, в котором содержаться элементы обоих множеств, например:

  • numS := numS + digS;
  • writeln(numS);

Операция пересечение * : результатом пересечения двух множеств является множество, в котором содержится элементы, входящие одновременно в оба множества, например:

  • numS := numS * digS;
  • writeln(numS);

Операция разность — : результатом разности двух множеств является множество, в котором содержится элементы первого множества, не входящие во второе множество.

  • digS := digS — numS;
  • writeln(digS);

Copyright © 2014-2018, Урок информатики
Все права защищены

Язык паскаль онлайн

Множества в Паскаль – Операции над множествами

    Browse: Home / Лекции Паскаль / Множества в Паскаль – Операции над множествами

Множества — это наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется компилятором. Количество элементов, входящих в множество, может колебаться в пределах от 0 до 256 (множество, не имеет элементов, называется пустой). Именно непостоянством в количестве своих элементов множества отличаются от массивов и записей.

Два множества считаются одинаковыми (эквивалентными) тогда и только тогда, когда все их элементы одинаковы, причем порядок вхождения элементов в множества безразличен. Если все элементы одного множества входят также и в другую, говорят о включении первого множества во вторую. Пустое множество включается в любую другую.

В этом примере множества s1 и s2 эквивалентны, а множество s3 включается в s2, но не эквивалентна ей.

Описание типа множества имеет вид:

Где — правильный идентификатор; set и of — зарезервированные слова (множество из) — базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме Word, Integer, LongInt.

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

  • *Пересечения множеств; результат содержит элементы, общие для обоих множеств; например, s4 * s6 содержит [3] бы s4 * s5 — пустое множество.
  • +Объединение множеств; результат содержит элементы с первого множества, дополненные недостающими элементами второго множества. s4 + s5 содержит [0,1,2,3,4,5,6], а s5 + s6 содержит [3,4,5,6,7,8,9]
  • Разность множеств; содержит элементы с первого множества, не относящихся второй. s6-s5 содержит [3,6,7,8,9], a s4-s5 содержит [0,1,2,3,6]
  • =Проверка эквивалентности; возвращает True, если обе множества эквивалентны.
  • <>Проверка неэквивалентности; возвращает True, если обе множества эквивалентны.
  • Проверка вхождения; возвращает True, если вторая множество включена в первую.

IN Проверка принадлежности; в этой бинарной операции первый элемент — выражение, а второй — множество того же типа: возвращает True, если выражение имеет значение, принадлежащее множественном числе:

  • 3 in s6 возвращает true
  • 2 * 2 in s1 возвращает false

INCLUDE — включает новый элемент в множество. Обращение к процедуре:

Где S — множество, состоящее из элементов базового типа TSetBase, а I — элемент типа TSetBase, который необходимо включить в множество.

EXCLUDE — исключает элемент из множества.

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

Сложные типы данных Turbo-Pascal. Множества и операции над ними

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Описание презентации по отдельным слайдам:

Множество в языке Паскаль – это ограниченный набор различных элементов одного (базового) типа, которые рассматриваются как единое целое.

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

В разделе описания типов: Type = set of ; Var : ; В разделе описания переменных: Var : set of ; Пример: Type mnog_char = set of char; Var mn1: mnog_char; mn2: set of char; mn3: set of ‘A’..’Z’; s1: set of byte; s2: set of 1000 .. 1200;

В программе элементы множества задаются в квадратных скобках, через запятую. Если элементы идут подряд друг за другом, то можно использовать диапазон. Пример: Type digit = set of 1..5; Var s: digit; Переменная s может принимать значения, состоящие из любой совокупности целых чисел от 1 до 5: [ ] – пустое множество; [1], [2], [3], [4], [5] — одноэлементные множества; [1,2],…[4,5] – двухэлементные; [1, 2, 3] – трехэлементное; [1, 2, 3, 4],… [2, 3, 4, 5] – четырехэлементные; [1, 2, 3, 4, 5] – полное множество (взяты все элементы базового типа)

Объединением двух множеств называется множество элементов, принадлежащих обоим множествам. Знак операции – « + ». Примеры: [‘A’, ’F’] + [‘B’, ’D’] = [‘A’,’F’,‘B’, ’D’]; [1..3, 5, 7, 11] + [3..8,10, 12, 15..20] = [1..8, 10..12, 15..20]; A1:=[‘a’, .. ‘z’]; A1:= A1 + [‘A’]; — к множеству A1 добавляем элемент. Тогда A1 = [‘A’, ‘a’ .. ‘z’];

Пересечением двух множеств называется множество элементов, принадлежащих одновременно и первому, и второму множеству, т.е. это общие элементы. Знак операции – « * ». Примеры: [‘A’, ’F’] * [‘B’, ’D’] =[ ] – так как общих элементов нет; [1..3, 5, 7, 11] * [3..8,10, 12, 15..20] = [3, 5, 7]; S1:=[1 .. 5, 9]; S2:= [3 .. 7, 12]; S:= S1 * S2; то результат выполнения S =[3 .. 5]; Операции над множествами

Вычитанием двух множеств называется множество, состоящее из тех элементов первого множества, которые не являются элементами второго множества. Знак операции – « — ». Примеры: [‘A’, ’F’] — [‘B’, ’D’] =[‘A’, ‘F’ ] – так как общих элементов нет; [1..3, 5, 7, 11] — [3..8,10, 12, 15..20] = [1 .. 2, 11]; S1:=[1 .. 5, 9]; S2:= [3 .. 7, 12]; S:= S1 — S2; то результат выполнения S =[1 .. 2, 9]; Операции над множествами

in – служебное слово. Логическая операция имеет результат true, если значение входит в множество и false в противном случае. Примеры: 5 in [3 .. 7] => true, т.к 5 принадлежит [3 .. 7]; ‘a’ in [‘A’ ..’Z’] => false, т.к. маленькой латинской буквы ‘a’ нет среди больших латинских букв. Примечание. Оператор вида: if (ch=‘a’) or (ch=‘b’) or (ch=‘x’) or (ch=‘y’) then s; может быть переписан в компактной наглядной форме: if ch in [‘a’,’b’,’x’,’y’] then s;

Используются операции отношения: =, <>, =, >. Результат -> true или false. true false true A ≤ B true false false A

  • Федорищева Марина Александровна
  • Написать
  • 155
  • 09.01.2019

Номер материала: ДБ-351000

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

  • 09.01.2019
  • 96
  • 09.01.2019
  • 124
  • 09.01.2019
  • 271
  • 09.01.2019
  • 190
  • 09.01.2019
  • 113
  • 09.01.2019
  • 146
  • 09.01.2019
  • 102
  • 09.01.2019
  • 561

Не нашли то что искали?

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако редакция сайта готова оказать всяческую поддержку в решении любых вопросов связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector