Для добавления текста щелкните мышью Структурированные типы данных. Множества 11 класс
Определение Множество это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое.
Определение Каждый объект во множестве называется элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного типа. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением. Область значений типа множество набор всевозможных подмножеств, составленных из элементов базового типа. Количество элементов множества называется его мощностью. Количество элементов множества не должно превышать 256, соответственно номера значений базового типа должны находиться в диапазоне
Определение Элементы не индексируются (система программирования располагает их в порядке возрастания), кроме того, множество не может содержать одинаковые элементы (отличие от массива и строки). Для описания множественного типа используется словосочетание set of.
Формат Способ 1. type = set of ; var : ; Способ 2. var : set of ;
Пример Simvol : set of a..z, Simvol = [a,b,c]; Number : set of 1..31, Number = [1,2,3,4]; Letter : set of char, Letter = ['а'..z']. В данном примере переменная Simvol может принимать значения символов латинского алфавита от 'а' до ' z '; Number любое значение в диапазоне 1..31; Letter любой символ. Попытка присвоить другие значения вызовет программное прерывание. Если множество не имеет элементов, оно называется пустым и обозначается, как [].
Операции над множествами Операция "равно" (=). Два множества А и В считаются равными, если состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет. Значение АЗначение ВВыражение Результат ['а','b','с'] ['а'..z] ['с', 'а'] ['z'..'а'] А = В False True
Операции над множествами Операция не равно" (). Два множества А и В считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента. Значение АЗначение ВВыражение Результат [1,2,3] [c..t] [3,1,2,4] [t..c] АВ Тrue False
Операции над множествами Операция "больше или равно" ( >= ). Операция "больше или равно"используется для определения принадлежности множеств. Результат операции A >= B равен True, если все элементы множества В содержатся в множестве А, в противном случае результат равен False. Значение АЗначение ВВыражение Результат [1,2,3,4][2,3,4] А>=ВТrue
Операции над множествами Значение АЗначение ВВыражение Результат [1,2,3][1,2,3,4]А
Операции над множествами Операция in. Операция in используется для проверки принадлежности какого- либо значения указанному множеству. Обычно применяется в условных операторах. Значение АВыражение Результат 2v2v If А in [1,2,3] then... If А in ['а'..'n'] then... Тrue False
Операции над множествами Объединение множеств (+). Объединением двух множеств является множество, содержащее элементы обоих множеств. Например: A=[1,2,3], B=[1,2,4,5], A+B=[1,2,3,4,5].
Операции над множествами Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества. Например: A=[1,2,3], B=[1,2,4,5], A*B=[1,2].
Операции над множествами Разность множеств ( ). Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество. Например: A=[1,2], B=[1,2,4,5], B-A=[4,5].
Задание значений 1. С помощью оператора присваивания M:=[1,2,3]. 2. С клавиатуры read(s); M:= M+[s].
Вывод на экран M: set of char For i:=a to z do If i in M then write(i); N: set of integer; For i:=0 to 255 do If i in M then write(i);
Пример. Составить программу, которая из предложенного предложения выделяет согласные и гласные буквы. program bukv; uses crt; type Letters = set of А..я; var Glasn, Sogl, G, S: Letters; Text: string; i: byte; j: char; begin clrscr; Glasn: = [А, a, E, e, И, и, O, o, У, у, Ю, ю, Я, я]; Sogl:=[Б..Д,б..д,Ж,ж,З,з,К..Н,к..н,П..Т,п..т,Ф..Щ,ф..щ,Ъ,ъ,Ь,ь]; write(Введите предложение); readln(Text); G:=[]; S:=[]; for i:=1 to length(Text) do begin if Text[i] in Glass then G:=G+[Text[i]]; if text[i] in Sogl then S:=S+[Text[i]]; End; writeln (Гласные ); for j:=a to z do if j in G then write(j, ); writeln (Согласные ); for j:=a to z do if j in S then write (j, ); readln; end.
Задание 2. Задайте два множества из целых чисел. Определите результат выполнения операций отношения и операций объединения, пересечения, разности. Составьте программу, выполняющую данные операции. program gh; uses crt; type mn=set of 0.. 9; var mn1, mn2, ob,per,raz: mn; i:integer; begin clrscr; mn1:=[1,2,3,5,7]; mn2:=[2,4,5,8]; write('mn1: '); for i:=0 to 9 do if i in mn1 then write(i:3); writeln('mn2: '); for i:=0 to 9 do if i in mn2 then write(i:3); writeln('ob: '); ob:=mn1+mn2; for i:=0 to 9 do if i in ob then write(i:3); writeln('per'); per:=mn1*mn2; for i:=0 to 9 do if i in per then write(i:3); writeln('raz'); raz:=mn1-mn2; for i:=0 to 9 do if i in raz then write(i:3); readln; end.
Лабораторная работа по теме «Множество» Составить программу, которая определяет количество гласных и согласных букв в предложении, введенном с клавиатуры. С клавиатуры вводятся два слова. Требуется найти множество гласных букв, которые входят в первое слово, но не входят во второе слово. Составить программу, определяющую общие цифры, из которых состоят два числа, и цифры, которыми они различаются.