- •Рабочая программа
- •Тематический план учебной дисциплины
- •Основные теоретические положения
- •Тема 2.5 Массивы
- •Одномерный массив
- •Способы описания одномерного массива
- •Ввод элементов массива
- •Ввод элементов массива
- •Вывод элементов массива
- •Двумерные массивы
- •Способы описания двумерного массива
- •Тема 2.6 Подпрограммы: процедуры и функции
- •Тема 2.7 Строки символов
- •Способы описания строк
- •Тема 2.8 Множество
- •Операции над множествами
- •Тема 2.9 Записи
- •Описание фиксированной записи
- •Описание вариантной записи
- •Тема 2.10 Файлы данных
- •Описание файловых переменных
- •Стандартные процедуры и функции для работы с файлами
- •Тема 2.11 Динамические структуры данных
- •Указательная переменная может находиться в трех состояниях:
- •Действия с указателями
- •Стандартные процедуры для работы с динамической памятью
- •Создание прямого односвязного списка
- •Методические указания по методике отладки программ в интегрированной среде PascalAbc Изучение интегрированной среды Pascal abc
- •Перечень рекомендуемых учебных изданий, интернет-ресурсов, дополнительной литературы
Тема 2.8 Множество
Множеством называется неупорядоченный ограниченный набор однотипных данных. Все элементы множества должны принадлежать одному из скалярных (простых) типов, кроме вещественных. Этот тип называется базовым типом множества. Базовый тип задается перечислением или диапазоном значений. Если множество не имеет элементов, оно называется пустым и обозначается как [ ] . Количество элементов множества называется его мощностью (максимальное количество 255). В множестве не может быть повторяющихся элементов. Область значений типа множество – набор всевозможных подмножеств, составленных из элементов базового типа.
Способы описания множеств
1. Var имя множества : set of тип элементов;
2. Type имя типа = set of тип элементов;
Var имя множества : имя типа;
где, set of - служебные слова ( множество из);
тип элементов – любой порядковый.
Например:
Type mn=set of char;
Var a,b: mn;
c: set of 2..6;
Begin
a:=[ ‘A’..’Z’];
c:=[2, 4..6];
b:=[];
. . .
End.
Операции над множествами
Операция IN - используется для проверки принадлежности какаго-либо значения указанному множеству. Обычно применяется в операторах условного перехода . Результат выполнения операции логического типа ( True или False).
Объединение множеств (+) . Объединением двух множеств является третье множество, содержащее элементы обоих множеств.
Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.
Разность множеств (-). Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество.
Операция «равно» (=). Два множества А и В считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет.
Операция «не равно» (<>). Два множества А и В считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента.
Операция «больше или равно» (>=) . Результат операции А>=B равен True , если все элементы множества В содержатся в множестве А.
Операция «меньше или равно» ( <=). Если все элементы множества А содержатся в множестве В , то результат равен True.
Примеры выполнения операций:
Операция |
Значение А |
Значение В |
Выражение |
Результат |
Равно |
[1,2,3,4] |
[1,2,3] |
A=B |
True |
не равно |
[1,2,3] |
[3,1,2,4] |
A<>B |
True |
Больше или равно |
[‘e’,’r’,’t’] |
[‘t’,’e’] |
A>=B |
True |
in |
‘v’ |
|
If A in [‘a’..’n’] then |
False |
объединения |
[1,2,3] |
[1,4,5] |
A+B |
[1,2,3,4,5] |
пересечения |
[‘A’..’Z’] |
[‘B’..’R’] |
A*B |
[‘B’..’R’] |
разность |
[1,2,3,4] |
[3,4,1] |
A-B |
[2] |
Стандартные процедуры работы с множествами
Имя и параметры |
Типы параметров |
Действие |
Include(s,x) |
s - множество, x - элемент, тип которого совместим с базовым типом множества |
включает элемент x во множество s |
Exclude(s,x) |
s - множество, x - элемент, тип которого совместим с базовым типом множества |
исключает элемент x из множества s |
Вывод элементов множества
Program VivodMN;
Type mn=set of char;
Var a:mn;
x: char;
begin
a:=[‘f’, ‘j’, ‘e’];
For x:=’a’ to ‘z’ do
If x in a then write (x)
End.
Пример 1: Дана строка символов , слова разделены любым знаком препинания . Вывести слова начинающиеся гласной буквой , оканчивающиеся согласной.
начало
zn=[знаки препинания] glas=[гласные буквы] sog=[согласные буквы]
Ввод st
I=1,length(st),1
конец Not(st[i] in zn)
sl[1] in glas
sl:=sl+st[i]
sl[length(sl)] in sog
Вывод sl
sl:=’’
|
program Mnog; const zn=[',','.',':',';','?','!',' ']; glas=['а','е','и','о','у','ю','я','э','ы','ё']; sog=['б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ']; var st,sl:string; i:integer; begin Writeln('Введите Строку'); readln(st); For i:=1 to length(st) do If not(st[i] in zn) then sl:=sl+st[i] else begin if (sl[1] in glas) and (sl[length(sl)] in sog) then Writeln(sl); sl:=''; end; end.
Результат решения задачи
Введите Строку мама,арбуз помой! арбуз |
