Скачать презентацию Множественный тип данных Содержание 1 2 3 Скачать презентацию Множественный тип данных Содержание 1 2 3

Множества New.pptx

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

Множественный тип данных Множественный тип данных

Содержание 1. 2. 3. 4. 5. 6. 7. Определение. Примеры данных множественного типа. Описание Содержание 1. 2. 3. 4. 5. 6. 7. Определение. Примеры данных множественного типа. Описание переменных. Операции над множествами. Операции отношения. Задачи. Домашнее задание.

Множественный тип данных ØМножеством называется совокупность однотипных элементов, рассматриваемых как единое целое. Ø [ Множественный тип данных ØМножеством называется совокупность однотипных элементов, рассматриваемых как единое целое. Ø [ 3, 4, 7, 9, 12] – множество из пяти целых чисел; Ø [ 1. . 100] - множество целых чисел от 1 до 100; Ø [ ‘a’, ’b’, ’c’] - множество, содержащее три литеры a, b, c. Ø [ ] – пустое множество. Ø [январь. . декабрь] – множество, состоящее из названий месяцев.

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

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

В Паскале переменная множественного типа описывается так: Var < идентификатор> : Set Of <базовый В Паскале переменная множественного типа описывается так: Var < идентификатор> : Set Of <базовый тип > Например: var A : Set Of Byte; // множество байтов B: Set Of ‘ a’. . ‘z’; // множество букв латинского алфавита C: Set Of Boolean; // множество логических величин

Можно множество описать как тип (type), а переменную - через описание типа. Например: type Можно множество описать как тип (type), а переменную - через описание типа. Например: type Alfa = set of ‘a’. . ‘z’; Ten = set of 0. . 9; Number = set of ‘ 0’. . ‘ 9’; var B: Alfa; Index: Ten;

Какие из следующих конструкций являются множествами в смысле Паскаля, а какие нет и почему? Какие из следующих конструкций являются множествами в смысле Паскаля, а какие нет и почему? a) [9, 6, 3, 0]; b) [2. . 3, 5, 7]; c) [1. . 15, 4. . 18]; d) [‘*’, ’*’]; e) [0. . 0]; f) [true. . false]; g) [2, sqr(9)]; h) [ [ ], [5]]; Не множества g и h

Какие из следующих конструкций являются множествами (в смысле Паскаля), а какие нет. a) b) Какие из следующих конструкций являются множествами (в смысле Паскаля), а какие нет. a) b) c) d) e) f) g) h) [9, 6, 3, 0]; [2. . 3, 5, 7]; [1. . 15, 4. . 18]; [‘*’, ’*’]; [0. . 0]; [true. . false]; [2, sqr(9)]; [ [ ], [5]];

 Нельзя вводить значения во множественную переменную оператором ввода и выводить оператором вывода. Множественная Нельзя вводить значения во множественную переменную оператором ввода и выводить оператором вывода. Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания следующего формата: < множественная переменная Например: > : = < множественное выражение A : = [50, 100, 150, 200]; B : = [‘m’, ‘n’, ‘k’]; C : = [True, False]; D : = A; >

Обозначение + * = <> <= >= in Операция Объединение множеств Разность множеств Пересечение Обозначение + * = <> <= >= in Операция Объединение множеств Разность множеств Пересечение множеств Проверка эквивалентности двух множеств Проверка неэквивалентности двух множеств Проверка, является ли левое множество подмножеством правого множества Проверка, является ли правое множество подмножеством левого множества Проверка, входит ли элемент, указанный слева, в множество, указанное справа

Объединением двух множеств А и В называется множество, состоящее из всех элементов, принадлежащих хотя Объединением двух множеств А и В называется множество, состоящее из всех элементов, принадлежащих хотя бы одному из множеств А и В. Например: [1, 2, 3, 4] + [3, 4, 5, 6] [1, 2, 3, 4, 5, 6] A + B

Разностью двух множеств А и В называется множество, состоящее из всех элементов множества, не Разностью двух множеств А и В называется множество, состоящее из всех элементов множества, не принадлежащих множеству В. Например: [1, 2, 3, 4] - [3, 4, 5, 6] [1, 2] [3, 4, 5, 6] - [1, 2, 3, 4] [5, 6] A B

Пересечением двух множеств А и В называется множество, состоящее из всех элементов, принадлежащих одновременно Пересечением двух множеств А и В называется множество, состоящее из всех элементов, принадлежащих одновременно множеству А и множеству В. Например: [1, 2, 3, 4] * [3, 4, 5, 6] [3, 4] A * B

Отношение Результат True False A = B A <> B A <= B Множества Отношение Результат True False A = B A <> B A <= B Множества А и В совпадают Множества А и В не совпадают Все элементы А принадлежат В В противном случае A >= B Все элементы В принадлежат А В противном случае

Пусть переменная М описана в программе следующим образом: Var M: Set Of Byte; В Пусть переменная М описана в программе следующим образом: Var M: Set Of Byte; В разделе операторов ей присваивается значение: М: = [3, 4, 7, 9] Тогда операции отношения дадут следующие результаты: Операция отношения M = [4, 7, 3, 3, 9] M <> [4, 7, 3, 3, 9] [3, 4] <= M [ ] <=M M >= [1. . 10] M <= [3. . 9] Результат true false true

Это операция, устанавливающая связь между множеством и скалярной величиной, тип которой совпадает с базовым Это операция, устанавливающая связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества. Если x – такая скалярная величина, а М – множество, то операция вхождения записывается так: x in M Результат – логическая величина true, если значение х входит в множество М, и false - d в противном случае. Пример. Для описанного выше множества 4 in M – true 5 in M - false

Дополнительно к этим операциям можно использовать две процедуры. INCLUDE - включает новый элемент во Дополнительно к этим операциям можно использовать две процедуры. INCLUDE - включает новый элемент во множество. Обращение к процедуре: INCLUDE (S, I) Здесь S - множество, состоящее из элементов базового типа TSet. Base; I - элемент типа TSet. Base, который необходимо включить во множество. EXCLUDE - исключает элемент из множества. Обращение: EXCLUDE(S, I) Параметры обращения - такие же, как у процедуры INCLUDE.

Пример 1 Дана символьная строка. Подсчитать в ней количество знаков препинания. Program P 1; Пример 1 Дана символьная строка. Подсчитать в ней количество знаков препинания. Program P 1; Var S: String; i, k: Byte; Begin Readln (S); k : = 0; For i : = 1 To Length(S) do IF S[i] in [‘. ’ , ‘ – ’, ‘ , ’, ‘ ; ’ , ’ : ’ , ’ ! ’ , ’ * ’ , ’ ? ’] Then k : = k + 1; Writeln (‘ Число знаков препинания равно’, k); End. В этом примере использована множественная константа с символьным типом элементов.

Пример 2. Ввести строку символов, состоящую из латинских букв, цифр и пробелов. Осуществить проверку Пример 2. Ввести строку символов, состоящую из латинских букв, цифр и пробелов. Осуществить проверку правильности введенных символов. Program P 2; Var Str : string; L : Byte; Tru : Boolean; Begin Write. Ln(‘Введите строку’); Read. Ln(Str); L : = Length(Str); { число введенных символов} Tru : = L >0; { true, если не пустая строка} While Tru and (L >0) do Begin Tru : = Str[ L ] in [ ‘ 0’. . ‘ 9’, ‘A’. . ‘Z’, ‘a’. . ‘z’, ‘ ‘]; {проверка допустимости cимвола} Dec(L) ; {предыдущий символ} End; If Tru then Write. Ln(‘Правильная строка’) else Write. Ln(‘Неправильная строка’); End.

Упражнение 1 В программе присутствуют описания: Var P : Set of 0. . 9; Упражнение 1 В программе присутствуют описания: Var P : Set of 0. . 9; i, j : integer; Если i=3 и j=5, то какое значение получит переменная Р при выполнении следующих операторов присваивания: a) P : = [i + 3, j div 2, j. . Sqr(i) – 3]; b) P : = [2*i. . j ]; c) P : = [ i, j, 2*i, 2*j ].

Упражнение 2 Вычислить значения отношений: a) [2] <> [2, 2, 2]; b) [4, 5, Упражнение 2 Вычислить значения отношений: a) [2] <> [2, 2, 2]; b) [4, 5, 6] = [4, 5, 6]; c) [2, 3, 5, 7] <= [1. . 9]; d) Trunc(3. 9) in [1, 3, 5]; e) [‘c’, ‘b’] = [‘c’. . ‘b’]; f) [3, 6. . 8] <= [2. . 7, 9]; g) [ ‘a’, ‘b’ ] = [‘b’, ‘a’]; h) Odd (4) in [ ].

Упражнения 3 Вычислить значения выражений: a) [1, 3, 5] + [2, 4]; b) [1, Упражнения 3 Вычислить значения выражений: a) [1, 3, 5] + [2, 4]; b) [1, 3, 5] * [2, 4]; c) [1, 3, 5] – [2, 4]; d) [1. . 6] + [3. . 8]; e) [1. . 6] * [3. . 8]; f) [1. . 6] – [3. . 8]; g) [ ] + [4]; h) [ ] – [4]; i) [ ] *[4].

Конец Конец

Пример 3. Даны две символьные строки, содержащие только строчные латинские буквы. Построить строку S Пример 3. Даны две символьные строки, содержащие только строчные латинские буквы. Построить строку S 3, в которую войдут только общие символы строк S 1 и S 2 в алфавитном порядке и без повторений. Program P 2; Type Mset = Set Of ‘a’. . ‘z’; Var S 1, S 2, S 3: String; MS 1, MS 2, MS 3: Mset; C: Char; Procedure SM(S: String; Var MS: Mset); {Формирует множество MS из строки S} Var i : Byte; Begin MS : = [ ]; For i : = 1 to Length(S) do MS : = MS + [ S [ i ] ] End; Begin {Ввод исходных строк} Read. Ln(S 1); Read. Ln(S 2); SM(S 1, MS 1); SM(S 2, MS 2); { Формирует множества MS 1 и MS 2} MS 3 : = MS 1*MS 2; { Формирует пересечение множеств}

{ Формирование результирующей строки} S 3 : = ‘ ‘; For C : = { Формирование результирующей строки} S 3 : = ‘ ‘; For C : = ‘a’ to ‘z’ do If C in MS 3 then S 3 : = S 3 + C; Writeln (‘Рузультат: ’, S 3) End. Проверьте работу программы на следующих исходных данных: S 1 = ehnwdynxhdn S 2 = dzbepnaedkr Заполните строку для множеств: MS 1=[ ] MS 2=[ ] MS 3=[ ]

базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER, LONGINT.