- •Лекция 6 Массивы. Множества. Строки Массивы
- •1 Одномерные массивы
- •1.1 Основные понятия
- •1.2 Описание массива
- •1.3 Заполнение массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •2 Двумерные массивы
- •2.1 Основные понятия
- •2.2 Описание массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •3.Множества
- •3. 1 Операции над множествами
- •3.2 Примеры решения задач
- •4. Строки
- •4.1 Строковые выражения
- •4.2 Стандартные процедуры и функции для обработки строковых данных
- •Insert(St1, St2, Poz)
- •4.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
3.Множества
Множество – структурированный тип данных, представляющих набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которое можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Значения элементов множества указываются в квадратных скобках. Например:
[1,2,3,4]; [‘f’,’d’,’c.’]; [‘a’..’z’]
Формат:
Type
<имя типа>= set of <элемент1, элемент2, …,элементn>;
Var
<идентификатор>:<имя типа>;
или
Var
<идентификатор>:set of <элемент1, элемент2, …,элементn >;
Например:
Type
Pros=set of (1,3,5,7,13);
Nom=set of 1..31;
Var
Pr: Pros;
N: Nom;
Buk: set of (‘A’,’S’, ‘Z’,’J’);
S: Set Of Byte;
Количество элементов множества не более 256. Объем памяти, занимаемый одним элементом множества, составляет 1 бит.
3. 1 Операции над множествами
С множествами допускаются все операции отношения (=, <>, >=, <=), операции объединения, пересечения, разности множеств и операция in.
Результат выражений: True, False.
Операция «=».
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3,5] |
[1,2,3,5] |
A=B |
True |
|
[‘a’,’b’,’c’] |
[‘a’,’c’] |
A=B |
False |
|
[‘a’..’z’] |
[‘z’..’a’] |
A=B |
True |
Операция «<>»
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3] |
[1,2,3,4] |
A<>B |
True |
|
[‘a’..’z’] |
[‘b’..’z’] |
A<>B |
True |
|
[‘a’..’n’] |
[‘n’..’a’] |
A<>B |
False |
Операция «>=». Результат операции A>=B True, если все элементы множества B содержатся в множестве A.
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3,4] |
[4,2,3] |
A>=B |
True |
|
[‘a’..’z’] |
[‘b’..’t’] |
A>=B |
True |
Операция «<=». Результат операции A<=B True, если все элементы множества A содержатся в множестве B.
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3] |
[1,2,3,4] |
A<=B |
True |
|
[‘d’..’h’] |
[‘a’..’z’] |
A<=B |
True |
Операция in
Используется для проверки принадлежности какого-либо элемента указанному множеству. Результат операции – значение True, если элемент принадлежит множеству, и False – в противном случае.
|
Значение А |
Выражение |
Результат |
|
2 |
If A in [1,2,3] Then… |
True |
|
‘v’ |
If A in [‘a’..’n’] Then… |
False |
При использовании операции in множество в [ ] не обязательно описывать в разделе описаний. Операция in позволяет эффективно производить сложные проверки условий. Например:
If (A=1) OR (A=2) OR (A=3) OR (A=4) OR (A=5) OR (A=6) Then …
можно заменить:
If A in {1..6] Then …
Допускается запись:
If NOT(X in M) Then…
Объединение множеств (+)
Объединением двух множеств является третье множество, содержащее элементы обоих множеств.
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3] |
[1,4,5] |
A+B |
[1,2,3,4,5] |
|
[ ] |
[ ] |
A+B |
[ ] |


А+В
Пересечение множеств (*)
Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3] |
[1,4,2,5] |
A*B |
[1,2] |
|
[‘a’..’z’] |
[‘b’..’z’] |
A*B |
[‘b’..’z’] |
|
[ ] |
[ ] |
A*B |
[ ] |

А*В
Разность множеств (-)
Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе.
|
Значение А |
Значение В |
Выражение |
Результат |
|
[1,2,3,4] |
[1,3,4] |
A-B |
[2] |
|
[X1,X2,X3,X4] |
[X4,X1] |
A-B |
[X2,X3] |

А-В
Преимущества при использовании множеств:
Упрощаются сложные операторы If.
В ряде случаев экономится память, время компиляции и выполнения.
Недостаток:
Pascal не поддерживает ввод-вывод элементов множества.
Для ввода-вывода элементов множества нельзя использовать операторы Read и Write.Для ввода элементов используется операция Объединение множеств (+), а для вывода-Операция проверки принадлежности (in)
