- •Содержание
- •1Алгоритмы линейных структур
- •2 Циклы
- •Введение
- •1 Алгоритмы линейных структур
- •1.1 Этапы разработки программы
- •1.2 Основные понятия
- •1.3 Основная структура программы
- •1.4 Алфавит языка
- •1.5 Идентификаторы
- •1.6 Константы
- •1.7 Понятие переменной Типы
- •1.8 Оператор присваивания Арифметические выражения
- •1.9 Операторы ввода и вывода информации
- •1.10 Практические задачи
- •1.11 Примеры решения задач
- •2 Циклы
- •2.1 Цикл с предусловием
- •Цикл с постусловием
- •Цикл со счетчиком
- •2.2 Задачи
- •2.3 Примеры
- •3 Немного об алгоритмах Алгоритм Кнута - Морриса - Пратта
- •Алгоритм Бойера – Мура
- •Алгоритм Рабина
- •Алгоритмы сортировки
- •Метод пузырька.
- •Сортировка выбором
- •Метод Шелла
- •Метод Хoopа
- •3.1 Разветвляющиеся алгоритмы
- •3.2 Задачи Свойства и виды треугольников (задачи 1-4)
- •Свойства и виды четырехугольников (задачи 5, 6)
- •Каким будет значение переменной а после выполнения фрагмента программы с составным оператором?
- •4 Массивы
- •4.1 Объявление массива
- •4.2 Действия над массивами
- •4.3 Вывод массива
- •4.4 Ввод массива
- •4.5 Сортировка массива
- •4.6 Поиск в массиве
- •4.7 Поиск минимального (максимального) элемента массива
- •4.8 Многомерные массивы
- •4.9 Ошибки при использовании массивов
- •4.10 Практические задачи
- •5 Множества
- •5.1 Описание типа множество
- •5.2 Операции над множествами
- •5.3 Группы операций
- •5.4 Упражнения
- •5.5 Задачи Тема: Множества
- •6 Записи
- •6.1 Понятие записи
- •6.2 Оператор присоединения With ... Do
- •6.3 Вариантные записи
- •6.4 Работа с файлами записей
- •6.5 Задачи
- •7 Файлы
- •7.1 Работа с файлами
- •7.2 Текстовые файлы
- •7.3 Типизированные файлы
- •7.4 Нетипизированные файлы
- •7.5 Задачи
- •8 Графика
- •8.1 Графика в Турбо Паскале
- •8.2 Базовые процедуры и функции
- •Процедуры модуля Graph
- •Функции модуля Graph
- •8.3 Экран и окно в графическом режиме
- •8.4 Вывод простейших фигур
- •8.5 Графические процедуры
- •8.6 Построение прямоугольников
- •8.7 Построение многоугольников
- •8.8 Построение дуг и окружностей
- •8.9 Работа с текстом
- •8.10 Построение графиков функций
- •8.11 Циклы в графике. Построение случайных процессов
- •8.12 Создание иллюзии движения
- •Задания
- •Контрольные тесты
- •1. Программирование алгоритмов линейных структур
- •2. Программирование алгоритмов разветвляющейся структуры
- •3. Программирование алгоритмов циклических структур
- •4. Массивы
- •5. Множества
- •6. Записи
- •7. Файлы
- •8. Графика
5.2 Операции над множествами
При работе с множествами допускается использование операций отношения ''='', ''<>'', ''<='', ''>='', объединения, пересечения, разности множеств и операций in. Результатом выражений с применением этих операций является значение True или False.
Операция 'равно'(=). Два множества A и B считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет.
Например:
Значение А |
Значение В |
Выражение |
Результат |
[1,2,3,4] |
[1,2,3,4] |
A=B |
True |
['a', 'b', 'c'] |
['c', 'a'] |
A=B |
False |
['a' .. 'z'] |
['z' .. 'a'] |
A=B |
True |
Операция ''не равно''(<>). Два множества А и В считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента.
Например:
Значение А |
Значение В |
Выражение |
Результат |
[1,2,3] |
[3,1,2,4] |
A<>B |
True |
['a' .. 'z'] |
['b' .. 'z'] |
A<>B |
True |
['c' ..'t'] |
['t' .. 'c'] |
A<>B |
False |
Операция ''больше или равно''(>=).Операция ''больше или равно''(>=) используется для определения принадлежности множеств. Результат операции А >= В равен True, если все элементы множества В содержатся в множестве А.В противном случае результат равен False.
Например:
Значение А |
Значение В |
Выражение |
Результат |
[1,2,3,4] |
[2,3,4] |
A>=B |
True |
['a' .. 'z'] |
['b' .. 't'] |
A>=B |
True |
['z', 'x', 'c'] |
['c', 'x'] |
A>=B |
True |
Операция ''меньше или равно''(<=).Эта операция используется аналогично предыдущей операции, но результат выражения А<= В равен True, если все элементы множества А содержатся в множестве В. В противном случае результат равен False.
Например:
Значение А |
Значение В |
Выражение |
Результат |
[1,2,3] |
[1,2,3,4] |
A<=B |
True |
['d' .. 'h'] |
['z' ..'a'] |
A<=B |
True |
['a', 'v'] |
['a', 'n', 'v'] |
A<=B |
True |
Операция in. Операция in используется для проверки принадлежности какого-либо значения указанному множеству. Обычно применяется в условных операторах.
Например:
Значение А |
Выражение |
Результат |
2 |
If A in [1,2,3] then… |
True |
'v' |
If A in ['a' .. 'n'] then… |
False |
X1 |
If A in [X0, X1, X2, X3] then… |
True |
При использовании операции 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… .
Часто операцию in пытаются записать с отрицанием:
X NOT in M.
Такая запись является ошибочной, так как две операции следуют подряд; правильная инструкция имеет вид NOT (X in M) .
Объединение множеств (+). Объединением двух множеств является третье множество, содержащее элементы обоих множеств.
Например:
Значение А |
Значение В |
Выражение |
Результат |
[1,2,3] |
[1,4,5] |
A+B |
[1,2,3,4,5] |
['A' ..'D'] |
['E..'Z'] |
A+B |
['A' ..'Z'] |
[] |
[] |
A+B |
[] |
Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.
Например:
-
Значение А
Значение В.
Выражение
Результат
[1,2,3]
['А'..'Z']
[ ]
[1,4,2,5]
['В'..'R']
[ ]
А*В
А*В
А*В
[1,2] ['В'..'R']
[ ]
Разность множеств ( — ). Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество.
Например:
-
Значение А
Значение В
Выражение
Результат
[1,2,3,4]
['А'..'Z'] [Х1,Х2,ХЗ,Х4]
[3,4,1]
['D'..'Z']
[Х4, Х1]
А—В
А—В
А—В
[2]
['А'..'С]
[Х2, ХЗ]
Результат операций над двумя множествами можно наглядно представить с помощью закрашенных частей двух прямоугольников:
Объединение Пересечение Разность
Заметим, что в операциях могут участвовать только те множества, которые строятся на одном базовом типе. Например, множества значений типа Char и типа Byte не сопоставимы.