Скачать презентацию Программирование на языке Паскаль Модуль 5 Множества Скачать презентацию Программирование на языке Паскаль Модуль 5 Множества

Паскаль. М5.ppt

  • Количество слайдов: 19

Программирование на языке Паскаль Модуль 5. Множества Программирование на языке Паскаль Модуль 5. Множества

Множества - это наборы однотипных логически связанных друг с другом объектов. Множество может содержать Множества - это наборы однотипных логически связанных друг с другом объектов. Множество может содержать от 0 до 255 элементов. Элементы множества не пронумерованы, не упорядочены. Действия можно выполнять только над множеством в целом. Тип элементов множества называется базовым типом Базовый тип может быть любым простым типом, кроме вещественного. Отрицательные элементы множеств не допускаются.

Множества Множественный тип описывается с помощью служебных слов Set of, например: type M = Множества Множественный тип описывается с помощью служебных слов Set of, например: type M = Set of B; Здесь М - множественный тип, В - базовый тип. Пример описания переменной множественного типа: type M = Set of 'A'. . 'D'; var MS: M;

Множества Описание множества в общем виде: Var <имя переменной>: Set of <базовый тип>; Примеры Множества Описание множества в общем виде: Var <имя переменной>: Set of <базовый тип>; Примеры множеств: Type bukva = Set of Char; Var A, B: bukva; c: Set of Boolean; d: Set of Byte; k: Set of 0. . 9; -Конкретные элементы множества задаются в виде списка элементов множества, заключенных в [ ]. -В отличие от элементов массива, элементы множества не упорядочены и не имеют индексов. Записи эквивалентны: [1, 2, 3]=[3, 1, 2] - Каждый элемент в множестве учитывается только один раз. [1, 1, 1, 2, 2, 3, 2. . 4] = [1, 2, 3, 4]

Множества Работа с переменными множественного типа. Нельзя вводить и выводить значения переменных множественного типа Множества Работа с переменными множественного типа. Нельзя вводить и выводить значения переменных множественного типа с помощью операторов ввода-вывода. Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания. Например: a: =[]; b: =[‘a’, ’c’, ’b’]; b: =a;

Множества Можно сначала объявить тип множества, а потом использовать его для объявления переменных: type Множества Можно сначала объявить тип множества, а потом использовать его для объявления переменных: type t_ch = set of char; var ch 1, ch 2: t_ch; Довольно часто в качестве базового типа множества используется тип перечисления или некоторый его диапазон: type week_days = (Mon, Tue, Wed, Thu, Fri); var work_days: set of week_days; lett: set of 'A'. . 'Z';

Множества Построение множества Чтобы во множестве появились элементы, необходимо выполнить оператор присваивания, в левой Множества Построение множества Чтобы во множестве появились элементы, необходимо выполнить оператор присваивания, в левой части которого стоит имя переменной-множества, а в правой — конструктор множества или некоторое выражение над множествами. type week_days = (Mon, Tue, Wed, Thu, Fri); var work_days: set of week_days; lett: set of 'A'. . 'Z'; begin work_days : = [Mon, Wed, Thu]; lett : = ['C', 'E'. . 'M', 'Z'] end.

Множества Следует помнить, что при задании множества порядок его элементов безразличен, но при задании Множества Следует помнить, что при задании множества порядок его элементов безразличен, но при задании диапазона такой порядок важен. Множество, в котором нет элементов, называется пустым (или нуль-множеством). В языке программирования Паскаль обозначается квадратными скобками, между которыми нет элементов: work_days : = [ ];

Множества Множество может быть объявлено типизированной константой, для чего в описании после знака равенства Множества Множество может быть объявлено типизированной константой, для чего в описании после знака равенства следует указать конструктор множества. Например: const lett: set of ['а'. . 'я'] = ['а', 'е', 'и', 'о', 'у', 'ы', 'у', 'ю', 'я']; В данном случае оператор описывает множество, элементами которого могут быть буквы русского алфавита, с записью в него начального значения, которое представляет собой множество гласных букв.

Множества Конструируя множества, можно использовать и переменные при условии, что их текущие значения попадают Множества Конструируя множества, можно использовать и переменные при условии, что их текущие значения попадают в диапазон базового типа множества. Так, если ch 1 и ch 2 имеют тип char, то допустима следующая последовательность операторов: ch 1 : = 'A'; ch 2 : = 'K'; chs : = [ch 1, ch 2, 'M']; В результате получится множество ['A', 'K', 'M']. Элементы множества нельзя вводить и выводить. Для организации ввода-вывода элементов множества следует использовать вспомогательные переменные. В то же время можно использовать множества как элементы типизированных файлов.

Множества Действия над множествами: * пересечение множеств; + объединение множеств; - разность множеств; = Множества Действия над множествами: * пересечение множеств; + объединение множеств; - разность множеств; = проверка эквивалентности; <> проверка неэквивалентности; <= проверка вхождения; in проверка принадлежности;

Множества 1) Объединение множеств. Знак операции объединения в Паскале - ’+’ Объединение двух множеств Множества 1) Объединение множеств. Знак операции объединения в Паскале - ’+’ Объединение двух множеств A и B (A + B) – это новое множество, состоящее из элементов, принадлежащих множеству A или B, либо тому и другому одновременно. var chs 1, chs 2, chs 3: set of char; begin chs 1 : = ['a', 'b', 'd']; chs 2 : = ['m', 'd', 'e']; chs 3 : = chs 1 + chs 2 + ['k', 'n']; end. Результат: chs 3 = ['a', 'b', 'd', 'm', 'e', 'k', 'n'].

Множества 2) Пересечение множеств. Знак операции объединения в Паскале – ’*’ Пересечение двух множеств Множества 2) Пересечение множеств. Знак операции объединения в Паскале – ’*’ Пересечение двух множеств A и B (A * B) – это множество, состоящее из элементов, одновременно принадлежащих множествам A и B. var chs 1, chs 2, chs 3: set of char; begin chs 1 : = ['a', 'b', 'd']; chs 2 : = ['m', 'd', 'e']; chs 3 : = chs 1 * chs 2; end. Результат: chs 3 = ['d’].

Множества 3) Разность множеств. Знак операции объединения в Паскале – ’-’ Разность двух множеств Множества 3) Разность множеств. Знак операции объединения в Паскале – ’-’ Разность двух множеств A и B (A - B) – о новое множество, состоящее из элементов множества A, не вошедших в множество B. var chs 1, chs 2, chs 3: set of char; begin chs 1 : = ['a', 'e', 't']; chs 2 : = chs 1 – ['e'] chs 3 : = ['m', 'n', 't'] – chs 2 End. { ['a', 't'] } { ['m', 'n'] }

Множества Манипуляция над множествами. Манипулируя операциями над множествами, можно добавлять элементы к множествам или Множества Манипуляция над множествами. Манипулируя операциями над множествами, можно добавлять элементы к множествам или удалять их. Для вставки и удаления элементов при работе с множествами в Pascal введены две процедуры: include (имя_множества, элемент) exclude (имя_множества, элемент) Первая из них позволяет выполнить добавление одного элемента в указанное множество, а вторая удалить. Например: include (chs 1, 'g'); { аналогично chs 1 + ['g'] } exclude (chs 2, 'a'); { аналогично chs 2 - ['a'] }

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

Множества Имеется также возможность выяснить, принадлежит ли данный элемент некоторому множеству. Для этого служит Множества Имеется также возможность выяснить, принадлежит ли данный элемент некоторому множеству. Для этого служит операция in. Пусть A – множество элементов некоторого базового типа, а x – переменная (константа, выражение) этого типа. Тогда выражение x in A истинно, если значение x является элементом множества A. Все операции сравнения множеств, а также операция in возвращают логическое значение true или false. В сложных выражениях над множествами операции имеют следующие приоритеты: 1) * 2) +, 3) =, <>, <=, >=, in

Множества Примеры: [1, 3] = [3, 1] возвращает true, [1. . 3] = [1, Множества Примеры: [1, 3] = [3, 1] возвращает true, [1. . 3] = [1, 2, 3] возвращает true, [1] <> [2] возвращает true, [1, 2, 3] = [1, 4, 3] возвращает false, [red, blue] = [red, yellow] возвращает false. [1, 3] + [1, 4] = [1, 3, 4]; [1, 3] * [1, 4] = [1]; [1, 3] - [1, 4] = [3].

Множества Пример: type digit. Char = set of '0'. . '9'; digit = set Множества Пример: type digit. Char = set of '0'. . '9'; digit = set of 0. . 9; var sl, s 2, s 3 : digit. Char; s 4, s 5, s 6 : digit; begin s 1 = ['1', '2', '3']; s 2 = ['3', '2', '1']; s 3 = ['2', '3']; s 4 = [0. . 3, 6]; s 5 = [4, 5]; s 6 = [3. . 9]; end.