
- •О.Ф. Власенко, и.В. Беляева символы и строки в языке turbo pascal
- •Оглавление
- •Введение
- •Символьный тип Символьный тип char
- •Функция Ord
- •Функция Chr
- •Функция Succ
- •Функция Pred
- •Функция UpCase
- •Процедура Inc
- •Процедура Dec
- •Примеры использования стандартных процедур и функций обработки символов
- •Строки Встроенный тип string
- •Операции над строками string
- •Правила сравнения двух строк
- •Стандартные процедуры и функции для работы со строками string
- •Процедура Delete
- •Процедура Insert
- •Процедура Str
- •Процедура Val
- •Функция Length
- •Функция Concat
- •Функция Copy
- •Функция Pos
- •Примеры использования стандартных процедур и функций обработки строк
- •Множества
- •Операции над множествами
- •Пример использования множеств
- •Пример Обработки массива строк Задача “Поиск символов в тексте”
- •Задача “Поиск слов в строке и удаление символов”
- •Лабораторная работа “обработка строк” Цель работы
- •Общее задание
- •Простые варианты
- •Средние варианты
- •Сложные варианты
- •Список литературы
- •Символы и строки в языке turbo pascal
- •432027, Г. Ульяновск, Сев. Венец, 32.
Операции над множествами
Для множеств определены следующие операции:
Обозначение операции в Тurbo Pascal |
Обозначение в математике |
Действия |
Тип операндов |
Тип результата |
+ |
È |
Объединение |
Совместимые типы множеств |
Множество |
- |
\ |
Разность |
Совместимые типы множеств |
Множество |
* |
Ç |
Пересечение |
Совместимые типы множеств |
Множество |
= |
= |
Равенство |
Совместимые типы множеств |
Логический |
< > |
¹ |
Неравенство |
Совместимые типы множеств |
Логический |
> = |
É |
Является надмножеством |
Совместимые типы множеств |
Логический |
< = |
Ì |
Является подмножеством |
Совместимые типы множеств |
Логический |
In |
Î |
Принадлежность |
Левый операнд - любой порядковый тип. Правый операнд –совместимый левому операнду тип множества. |
Логический |
Применение операций над множествами продемонстрируем на примере с множествами символов.
Var
a, b, c, d, e, f : Set of char; {Множества символов}
begin
a := ['A' .. 'D']; {Множество A содержит 4 элемента - ‘A’,’B’,’C’,’D’}
b := ['C', 'D', 'R', 'W']; {Множество B содержит 4 элемента -
‘C’,’D’,’R’,’W’}
c := ['C', 'D']; {Множество C содержит 2 элемента – ’C’,’D’}
d := a + b; {ОБЪЕДИНЕНИЕ: множество D содержит все элементы множества A и все элементы множества B. Все элементы содержатся только по одному разу, т.е. множество D содержит 6 элементов - ‘A’,’B’,‘C’,’D’,’R’,’W’}
e := a - b; { РАЗНОСТЬ: множество E содержит те элементы множества A, которых нет в множестве B. Т.е. в множество E скопированы все элементы множества A, за исключением тех, которые были и в A и в B. Множество E теперь содержит 2 элемента - ‘A’,’B’ }
f := a * b; {ПЕРЕСЕЧЕНИЕ: множество F содержит те элементы множества A, которые есть и в множестве B. Множество F теперь содержит 2 элемента - ‘C’,’D’ }
if a = b {РАВЕНСТВО: сравниваются множества A и B. Если оба они содержат одинаковые элементы, то результат True, в противном случае – False. В данном случае A не равен B, т.к. A=[‘A’..’D’], а B=['C','D','R','W'], т.е. A=B - False}
then writeln('A=B')
else writeln('A<>B'); {Будет выведена строка ‘A<>B’}
if c <> a * b {НЕРАВЕНСТВО: сравниваются множества A и B. Если они отличаются друг от друга хотя бы одним элементом, то результат True, в противном случае – False. В данном случае C=[‘C’,’D’], и A*B=['C','D'] - т.е. в данном случае C равен A*B, следовательно, c<>a*b - False}
then writeln('C<>A*B')
else writeln('C=A*B'); {Будет выведена строка ‘C=A*B’}
if a >= c {ЯВЛЯЕТСЯ НАДМНОЖЕСТВОМ: сравниваются множества A и C. Если в множестве A содержатся все элементы множества C (причем в множестве A, кроме элементов множества C, могут быть и любые другие элементы), то результат True, в противном случае – False. В данном случае A=[‘A’..’D’], а С=['C','D'], т.е. множество A содержит все элементы множества C, следовательно, a>=c - True}
then writeln('A>=C') {Будет выведена строка ‘A>=C’}
else writeln('not A>=C');
if a<=b {ЯВЛЯЕТСЯ ПОДМНОЖЕСТВОМ: сравниваются множества A и B. Если все элементы множества A содержатся в множестве B (причем в множестве B, кроме элементов множества A, могут быть и любые другие элементы), то результат True, в противном случае – False. В данном случае A=[‘A’..’D’], а B=['C','D',’R’,’W’], т.е. все элементы множества A не содержатся в множестве B, следовательно, a<=b - False}
then writeln('A<=B')
else writeln('not A<=B'); {Будет выведена строка ‘not A<=B’}
if 'A' in A {ПРИНАДЛЕЖНОСТЬ: проверяется, содержит ли множество A элемент ‘A’. Если содержит, то результат True, в противном случае – False. В данном случае A=[‘A’..’D’], следовательно, ‘A’ содержится в множестве A. Значит, ‘A’ in A - True}
then writeln('''A'' in A') {Будет выведена строка ‘ ‘A’ in A’}
else writeln('''A'' NOT in A')
end.