Скачать презентацию Операции над множествами L O G O Содержание 1 2 Скачать презентацию Операции над множествами L O G O Содержание 1 2

Множества.ppt

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

Операции над множествами L/O/G/O Операции над множествами L/O/G/O

Содержание 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Содержание 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Понятие множества Отличие множеств от массивов Базовый тип Формат объявления типа множеств Объявление множеств Инициализация множеств Пример объявления типа множеств Операции над множествами Операция “=” (равно) Операция “<>”(не равно) Операция “>=”(больше или равно) Операция “<=”(меньше или равно) Операция in Объединение множеств “+” Пересечение множеств “ * ” Разность множеств “-” Примеры программ Плюсы и минусы использования множеств Контрольные вопросы Список литературы

Понятие множества Множество − это набор элементов одинакового типа, которые рассматриваются как единое целое. Понятие множества Множество − это набор элементов одинакового типа, которые рассматриваются как единое целое. Элементы множества не пронумерованы, следовательно, нельзя обратиться к отдельному элементу множества по его индексу.

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

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

Базовый тип Тип элементов множества называется базовым типом множества. Область значений множества - набор Базовый тип Тип элементов множества называется базовым типом множества. Область значений множества - набор всевозможных подмножеств, составленных из элементов базового типа. В языке Pascal базовый тип множеств имеет ограничения. Им может быть только порядковый тип, количество значений которого не превышает 256. Таким образом, в качестве базового типа для множеств могут быть: • перечисляемый тип; • символьный тип – char; • целочисленный – byte; • логический тип – boolean; • интервальный тип, опирающийся на перечисленные типы данных.

Формат объявления типа множеств Для объявления типа множеств используется словосочетание set of Формат объявления Формат объявления типа множеств Для объявления типа множеств используется словосочетание set of Формат объявления типов множеств следующий: type <имя типа>=set of <тип элементов множества>; var <имя переменной>: <имя типа>; Можно описать переменные типа множеств и без предварительного объявления типа: var <имя переменной>, … : set of <тип>; Можно объявить константы типа множеств: сonst <имя константы>= [<значения множества>] а также типизированные константы: const <имя константы>: <тип множества>=[<значения множества>]

Объявление множеств Примеры объявления типов множеств. Type TSides = (left, right, top, bottom); TSet. Объявление множеств Примеры объявления типов множеств. Type TSides = (left, right, top, bottom); TSet. Sides = set of TSides; TChars = set of char; TDigits = set of byte; TLog = set of boolean; При описании множества интервального типа начальное значение интервала обязательно должно быть меньше чем конечное значение. TSides = set of left. . top; TChars = set of ‘a’. . ’z’; TDigits = set of 0. . 255; TLog = set of false. . true;

Инициализация множеств При описании множества его можно инициализировать с помощью типизированной константы, при этом Инициализация множеств При описании множества его можно инициализировать с помощью типизированной константы, при этом значения множества указываются в квадратных скобках. Const Chars: set of chars = [‘a’. . ‘d’, ‘f’, ‘g’]; Simple. Digits: set of byte = [0. . 9]; Заполнить множество значениями можно и в ходе выполнения программы с помощью оператора присваивания, при этом, так же как при объявлении типизированной константы значения множества указываются в квадратных скобках и разделяются между собой через запятую. Var Chars: set of char; Digits: set of byte; … Chars: =[‘a’, ‘d’, ‘k’. . ’z’]; Digits: =[1. . 5];

Пример объявления типа множеств const number = [1, 4, 7, 9]; type simply = Пример объявления типа множеств const number = [1, 4, 7, 9]; type simply = set of ‘a’. . ‘h’; var pr : simply; letter : set of char; {без предварительного описания в разделе типов} Множество number задано константой, поэтому попытка присвоить множеству другие значения вызовет ошибку. В множество pr могут входить значения символов латинского алфавита от ‘a’ до ‘h’; В множество letter – значения любых символов. Попытка присвоить переменной другие значения вызовет ошибку.

Операции над множествами При работе с множествами допускается использование следующих операций: • отношения (=, Операции над множествами При работе с множествами допускается использование следующих операций: • отношения (=, <>, >=, <=); • объединения множеств (+); • пересечения множеств (*); • разности множеств (-); • проверки принадлежности элемента множеству (in).

Операция “=” (равно) Два множества А и В считаются равными, если они состоят из Операция “=” (равно) Два множества А и В считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах, значения не имеет. <оперенд 1>=<операнд 2>

Примеры операции “=” Значение А Значение В Выражение Результат [1, 2, 3, 4] [4, Примеры операции “=” Значение А Значение В Выражение Результат [1, 2, 3, 4] [4, 3, 2, 1] A=B True [‘a’, ‘b’, ‘c’] [‘c’, ‘a’] A=B False [1. . 4] [1, 2, 3, 4] A=B True

Операция “<>”(не равно) Два множества A и B считаются не равными, если они отличаются Операция “<>”(не равно) Два множества A и B считаются не равными, если они отличаются по количеству элементов или по значению хотя бы одного элемента. <операнд 1> <> <операнд 2>

Примеры операции “<>” Значение А Значение В Выражение Результат [1, 2, 3] [3, 1, Примеры операции “<>” Значение А Значение В Выражение Результат [1, 2, 3] [3, 1, 2, 4] A<>B True [‘a’. . ‘z’] [‘b’. . ‘z’] A<>B True [1. . 4] [1, 2, 3, 4] A<>B False

Операция “>=” (больше или равно) Эта операция используется для определения принадлежности одного множества другому. Операция “>=” (больше или равно) Эта операция используется для определения принадлежности одного множества другому. Результат операции A>=B равен true, если все элементы множества В содержаться в множестве А. В противном случае результат равен false.

Примеры операции “>=” Значение А Значение В Выражение Результат [1, 2, 3, 4] [2, Примеры операции “>=” Значение А Значение В Выражение Результат [1, 2, 3, 4] [2, 3, 4] A>=B True [‘a’. . ‘z’] [‘b’. . ‘t’] A>=B True [‘z’, ‘x’, ‘c’] [‘c’, ‘x’] A>=B True [‘a’, ‘k’] [‘s’ , ‘a’, ‘k’] A>=B False

Операция “<=” (меньше или равно) Операция используется аналогично предыдущей операции, но результат выражения A<=B Операция “<=” (меньше или равно) Операция используется аналогично предыдущей операции, но результат выражения A<=B равен true, если все элементы множества А содержаться в множестве В. В противном случае результат равен false.

Примеры операции “<=” Значение А Значение В Выражение Результат [1, 2, 3] [1, 2, Примеры операции “<=” Значение А Значение В Выражение Результат [1, 2, 3] [1, 2, 3, 4] A<=B True [‘d’. . ‘h’] [‘a’. . ‘z’] A<=B True [‘a’, ‘v’] [‘a’, ‘n’ ‘v’] A<=B True [‘s’ , ‘a’, ‘k’] [‘a’, ‘k’] A<=B False

Операция in Эта операция используется для проверки принадлежности значения указанному множеству. <значение> in <множество> Операция in Эта операция используется для проверки принадлежности значения указанному множеству. <значение> in <множество>

Примеры операции in Значение А Выражение Результат 2 А in [1, 2, 3] True Примеры операции in Значение А Выражение Результат 2 А in [1, 2, 3] True ‘v’ А in [] False x 1 А in [x 0, x 1, x 2, x 3] True

Объединение множеств “+” Объединением двух множеств является третье множество, содержащее элементы обоих множеств. Объединение множеств “+” Объединением двух множеств является третье множество, содержащее элементы обоих множеств.

Примеры операции объединения множеств Значение А Значение В Выражение Результат [1, 2, 3] [1, Примеры операции объединения множеств Значение А Значение В Выражение Результат [1, 2, 3] [1, 4, 5] A+B [1, 2, 3, 4, 5] [‘a’. . ‘d’] [‘z’. . ‘a’] A+B [‘a’. . ‘z’] [] [] A+B []

Пересечение множеств “ * ” Пересечением двух множеств является третье множество, которое содержит элементы, Пересечение множеств “ * ” Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.

Пример операции пересечения множеств Значение А Значение В Выражение Результат [1, 2, 3] [1, Пример операции пересечения множеств Значение А Значение В Выражение Результат [1, 2, 3] [1, 4, 2, 5] A*B [1, 2] [‘a’. . ‘z’] [‘b’. . ‘r’] A*B [‘b’. . ‘r’] [1, 3, 5] [] A*B []

Разность множеств “-” Разностью двух множеств является третье множество, которое содержит элементы первого множества, Разность множеств “-” Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество.

Примеры операции разности множеств Значение А Значение В Выражение Результат [1, 2, 3, 4] Примеры операции разности множеств Значение А Значение В Выражение Результат [1, 2, 3, 4] [3, 4, 1] A-B [2] [‘a’. . ‘z’] [‘d’. . ‘z’] A-B [‘a’. . ‘с’] [x 1, x 2, x 3, x 4] [x 4, x 1] A-B [x 2, x 3]

Примеры программ Выполнить над множествами операции объединения, разности, пересечения. Множества D 1, D 2, Примеры программ Выполнить над множествами операции объединения, разности, пересечения. Множества D 1, D 2, D 3 заполнены следующим образом: D 1 - 2, 4, 6, 8 (четные числа); D 2 - числами 0, 1, 2, 3, 5; D 3 - нечетными числами 1, 3, 5, 7, 9.

Примеры программ type digits=set of 0. . 9; var D 1, D 2, D Примеры программ type digits=set of 0. . 9; var D 1, D 2, D 3, D: digits; begin D 1: =[2, 4, 6, 8]; { Запоминание множеств } D 2: =[0. . 3, 5]; D 3: =[1, 3, 5, 7, 9]; D: =D 1+D 2; { Объединение множеств D 1 и D 2 } D: =D+D 3; { Объединение множеств D и D 3 } D: =D-D 2; { Разность множеств D и D 2 } D: =D*D 1; { Пересечение множеств D и D 1 } end.

Примеры программ Процедура для вывода множества символов на экран: type charset=set of char; procedure Примеры программ Процедура для вывода множества символов на экран: type charset=set of char; procedure writeset (a: charset); var c: char; begin for c: =chr(0) to chr(255) do if c in a then write(c, ‘ ’); writeln; end;

Примеры программ Подсчет количества гласных букв в предложении const glasn=[‘а’, ‘е’, ‘и’, ‘о’, ‘у’, Примеры программ Подсчет количества гласных букв в предложении const glasn=[‘а’, ‘е’, ‘и’, ‘о’, ‘у’, ‘ы’, ‘э’, ‘ю’, ‘я’ ‘А’, ‘Е’, ‘И’, ‘О’, ‘У’, ‘Ы’, ‘Э’, ‘Ю’, ‘Я’ ]; var s: string; p, i: integer; begin write(‘Введите строку текста: ’); readln(s); p: =0; for i: =1 to lehght(s) do if s[i] in glasn then p: =p+1; writeln (‘В строке’, p, ‘гласных букв’); readln; end.

Примеры программ Необходимо для введенной с клавиатуры строки подсчитать количество символов относящихся к цифрам. Примеры программ Необходимо для введенной с клавиатуры строки подсчитать количество символов относящихся к цифрам. Uses Crt; Const Dig: set of char = ['0'. . '9']; Var s: string; i, count: byte; BEGIN Clr. Scr; Writeln('Input a string'); Readln(s); count: =0; for i: =1 to length(s) do if s[i] in Dig then inc(count); Writeln('Count of digits = ', count); Readln; END.

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

Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Что называется множеством? Можно ли обратиться к отдельному элементу множества? Какого типа данных может быть множество? Каковы отличия множеств от массивов? Какова область значений множества? Что называется базовым типом и каковы его ограничения? Какие операции над множествами вы знаете? Какие множества считаются равными? Какие множества считаются не равными? Для чего используется операция больше или равно? Для чего используется операция меньше или равно? Для чего используется операция in? Что является объединением двух множеств? Что является пересечением двух множеств? Что является разностью двух множеств?

Список литературы • Немнюгин, С. А. Turbo Pascal: практикум / С. А. Немнюгин. 2 Список литературы • Немнюгин, С. А. Turbo Pascal: практикум / С. А. Немнюгин. 2 -е изд. – СПб. : Питер, 2008. – 209 с. • Марченко, А. И. Программирование в среде Turbo Pascal 7. 0. / А. И. Марченко, Л. А. Марченко. – М. : 354. • Баула, В. Г. Основы программирование и алгоритмические языки: учеб. пособие для техникумов / В. Г. Баула, Н. Д. Васюкова, В. В. Тюляева – М. : Энергоатомиздат, 1991 – 279 с. • Фаронов, В. В. Turbo. Pascal 7. 0: Практика программирования: учеб. пособие. М. : ОМД Групп, 2001. – 416 с.