
- •Ответы на устные вопросы экзамена по программированию 3 «г».
- •Вопрос 1. Язык программирования t. P.
- •Вопрос 2. Типы данных в t. P. Основные функции и выражения.
- •Вопрос 3. Структура программы на языке программирования t. P.
- •Вопрос 4. Оператор присваивания. Команда ввода информации.
- •Вопрос 5. Команда вывода информации.
- •Вопрос 6. Организация программ линейной структуры в t. P.
- •Вопрос 7. Разветвляющиеся вычислительные процессы. Операторы условного перехода.
- •2. Формат записи не полного условного оператора (краткая форма):
- •Вопрос 8. Разветвляющиеся вычислительные процессы. Вложенный условный оператор.
- •Вопрос 9. Оператор выбора в t. P.
- •Вопрос 10. Циклические вычислительные процессы и операторы цикла в t. P..
- •Вопрос 11. Оператор цикла с параметром.
- •Вопрос 12. Оператор цикла с предусловием.
- •Вопрос 13. Оператор цикла с постусловием.
- •Вопрос 14. Вложенные циклы в t. P.
- •Вопрос 15. Одномерные массивы. Объявление одномерного массива в программе.
- •Вопрос 16. Многомерные массивы. Работа с многомерными массивами.
- •Вопрос 17. Сортировка элементов массива. Алгоритмы пузырьковой сортировки.
- •Вопрос 18. Подпрограммы. Процедуры.
- •Вопрос 19. Подпрограммы. Функции в t. P.
- •Вопрос 20. Глобальные и локальные, фактические и формальные параметры.
- •Вопрос 21. Символьные величины. Операции над символьными величинами.
- •Вопрос 22. Процедуры для работы с символьными величинами.
- •Вопрос 23. Понятие «множество». Описание множеств в программе.
- •Вопрос 24. Основные процедуры для работы с множествами.
- •Вопрос 25. Записи. Описание записей в программе.
- •Вопрос 26. Операторы для работы с записями в программе.
- •Вопрос 27. Файлы. Виды файлов в t. P.
- •Вопрос 28. Процедуры для работы с файлами в t. P. Стандартные процедуры для работы с типизированными файлами.
- •Вопрос 29. Текстовые файлы в t. P. Процедуры для работы с текстовыми файлами.
- •Вопрос 30. Работа с диагональными элементами в квадратной матрице.
- •Вопрос 31. Задачи перестановок и вставки элементов в массиве.
- •Вопрос 32. Работа над множествами в программе.
- •Вопрос 33. Задачи поиска максимального и минимального элементов массива.
- •Вопрос 34. Основные функции для работы с символьными величинами.
Вопрос 23. Понятие «множество». Описание множеств в программе.
В математике множество - это любая совокупность объектов, выбранная из универсального множества. Универсальным считается множество, содержащее сразу все рассматриваемые элементы. Объекты математического множества могут быть любой природы, они не являются упорядоченными, не повторяются и их количество неограниченно.
В Паскале множество - это структура данных, сохраняющая некоторые (не все) черты математических множеств. Как и в математике, повторяющиеся элементы множества игнорируются; не имеет значения и порядок их следования. Если в математике множество может содержать неограниченное число элементов, то в Паскале число элементов множества ограничено (не превышает 256). Кроме того, особенностью множеств в языке Паскаль является то, что все элементы должны быть одного и того же базового типа.
Базовый тип, в некотором смысле, играет роль универсального множества: он определяет перечень всех элементов, которые вообще могут содержаться в данном множестве. В качестве базового типа может выступать любой простой порядковый тип, такой, как char, перечисляемый, ограниченный, boolean, byte. Таким образом, элементами множеств в Паскале не могут быть ни вещественные числа (Real не относится к порядковому типу), ни стринги (это не простой тип, и тем более не порядковый).
Объявление и конструирование множеств.
Множества в программе могут быть объявлены в разделе описания типов или непосредственно в разделе описания переменных с помощью служебного слова set.
Первый способ объявления переменной типа множества (с использованием раздела типов Туре):
Туре <имя типа> = set оf <базовый тип>;
Var <имя множества> : <имя типа>;
Второй способ объявления переменной типа множества (в разделе переменных Var):
Var <имя множества> : set of <базовый тип>;
Объявление множества описывает полную совокупность принципиально возможных элементов, но при этом никаких значений в самой set- переменной не создает.
Значения множеств задаются в разделе операторов с помощью оператора присваивания. В левой части этого оператора стоит set-переменная, в правой -конструктор. Конструктор представляет собой список элементов базового типа, заключенный в квадратные скобки.
Объявим и сконструируем множества:
Program mnog;
type
MN1 = set of char;
MN2 = set of byte;
var
N1,N2,N3,N4:MN2;
C1,C2,C3,C4:MN1;
begin
N1:= [1,2,3,4,5];
N2:= [2..6];
C1:=['0'..'7'];
C2:=['2', '>', 'K'..'S'];
End.
Вопрос 24. Основные процедуры для работы с множествами.
Операции над множествами.
Операции над множествами разделяются на операции, создающие производные множества, и операции сопоставления множеств (сравнение множеств и проверка принадлежности множеству). В операциях над множествами могут участвовать только те множества, которые построены на одном базовом типе (т.е. сопоставимые).
Операции, создающие производные множества.
Объединение двух множеств А и В (записываемое как А+В) есть новое множество, состоящее из элементов, принадлежащих или множеству А, или множеству В, или тому и другому одновременно
Пересечение двух множеств А и В (записываемое как А*В) есть новое множество, состоящее из элементов, принадлежащих как множеству А, так и множеству В.
Разность двух множеств А и В ( записываемая как А-В ) есть новое множество, состоящее из элементов, принадлежащих множеству А и не принадлежащих множеству В.
Сравнение множеств. Проверка принадлежности множеству.
Сравнение множеств предполагает проверку следующих ситуаций: равны множества или нет; является ли одно множество подмножеством другого или нет.
1. Множество А равно множеству В (записывается как А=В) тогда и только тогда, когда каждый элемент множества А является элементом множества В и наоборот.
2. Множество А не равно множеству В (записывается как А<>В), если не каждый элемент множества А является элементом множества В или наоборот.
3. Множество А есть подмножество множества В (записывается как А<=В) тогда и только тогда, когда каждый элемент множества А является элементом множества В. В этом случае говорят, что множество А входит во множество В.
4. Множество В есть подмножество множества А (записывается как А>=В) тогда и только тогда, когда каждый элемент множества В является элементом множества А. В этом случае говорят, что множество А содержит множество В.
Операции сравнения множеств - двуместные. Результат операции будет логического типа: TRUE, если условие выполняется, и FALSE в противном случае.
Проверка принадлежности элемента множеству выполняется с помощью операции in. Пусть элемент S и множество А имеют одинаковый базовый тип. Тогда операция S in А проверяет, принадлежит ли элемент S множеству А; если да, то результат операции TRUE, иначе - FALSE.
В Паскале принят следующий приоритет операций, выполняемых над множествами: *, +, -, =, <>,>=, <=, in. Для изменения порядка выполнения операций используются круглые скобки.