ГБПОУ ВО
«Россошанский колледж мясной
и молочной промышленности»
Инструкционная карта
практического занятия
Наименование работы: «Составление и отладка
программ ввода – вывода элементов множеств»
Цель занятия: Научиться составлять и
отлаживать программы для обработки элементов множеств.
Приобретаемые умения и навыки:
Правильно составлять программы для
обработки элементов множеств.
Оснащение рабочего места: ПК, OC Windows, Паскаль.
Краткие теоретические сведения:
Понятие множества в языке ПАСКАЛЬ
основывается на математическом представлении о множествах: это ограниченная
совокупность различных элементов. Для построения конкретного множественного
типа используется перечисляемый или интервальный тип данных. Тип элементов,
составляющих множество, называется базовым типом.
Множественный тип описывается с
помощью служебных слов Set of, например:
type M= Set of B;
Здесь М - множественный тип, В -
базовый тип.
Пример описания переменной множественного
типа:
type
M= Set of 'A'..'D';
var
MS : M;
Принадлежность переменных к
множественному типу может быть определена прямо в разделе описания переменных:
var
C : Set of 0..7;
Константы множественного типа
записываются в виде заключенной в квадратные скобки последовательности
элементов или интервалов базового типа, разделенных запятыми, например:
['A', 'C'] [0, 2, 7] [3,
7, 11..14].
Константа вида [] означает пустое
подмножество.
Множество включает в себя набор
элементов базового типа, все подмножества данного множества, а также пустое
подмножество. Если базовый тип, на котором строится множество, имеет К
элементов, то число подмножеств, входящих в это множество, равно 2 в степени К.
Пусть имеется переменная Р интервального типа:
var
P : 1..3;
Эта переменная может принимать три
различных значения - либо 1, либо 2, либо 3. Переменная Т множественного типа
var
T : Set of 1..3;
может принимать восемь различных
значений:
[ ] [1,2]
[1] [1,3]
[2] [2,3]
[3] [1,2,3]
Порядок перечисления элементов
базового типа в константах безразличен.
Значение переменной множественного
типа может быть задано конструкцией вида [T], где T - переменная базового типа.
К переменным и константам
множественного типа применимы операции присваивания (:=), объединения(+),
пересечения(*) и вычитания(-):
['A','B'] + ['A','D'] даст
['A','B','D']
['A'] * ['A','B','C'] даст
['A']
['A','B','C'] - ['A','B'] даст
['C'].
Результат выполнения этих операций
есть величина множественного типа.
К множественным величинам применимы
операции: тождественность (=), нетождественность (<>), содержится в
(<=), содержит (>=). Результат выполнения этих операций имеет логический
тип, например:
['A','B'] = ['A','C'] даст
FALSE
['A','B'] <> ['A','C'] даст
TRUE
['B'] <= ['B','C'] даст
TRUE
['C','D'] >= ['A'] даст
FALSE.
Кроме этих операций для работы с
величинами множественного типа в языке ПАСКАЛЬ используется операция in проверяющая
принадлежность элемента базового типа, стоящего слева от знака операции, множеству,
стоящему справа от знака операции. Результат выполнения этой операции -
булевский. Операция проверки принадлежности элемента множеству часто
используется вместо операций отношения, например:
A in ['A', 'B'] даст
TRUE,
2 in [1, 3, 6] даст FALSE.
При использовании в программах данных
множественного типа выполнение операций происходит над битовыми строками
данных. Каждому значению множественного типа в памяти ЭВМ соответствует один
двоичный разряд. Например, множество
['A','B','C','D']
представлено в памяти ЭВМ битовой
строкой
1 1 1 1.
Подмножества этого множества
представлены строками:
['A','B','D'] 1
1 0 1
['B','C'] 0
1 1 0
['D'] 0 0 0 1
Величины множественного типа не могут
быть элементами списка ввода - вывода.
В каждой конкретной реализации
транслятора с языка ПАСКАЛЬ количество элементов базового типа, на котором
строится множество, ограничено. В PASCAL количество базовых элементов не должно
превышать 256.
Инициализация величин множественного
типа производится с помощью типизированных констант:
const seLit: Set of 'A'..'D'= [];
Операции
над множествами.
Предположим,
существуют два множества А и В, принадлежащие какому-то универсальному
множеству U. Тогда:
1.
Объединение множеств.
Объединением
или суммой множеств А и В называется множество С, состоящее из элементов,
входящих в оба множества.
2.
Пересечение множеств.
Пересечением
множеств А и В называется множество С, состоящее из элементов, принадлежащих
обоим множествам.
3. Разность
множеств.
Разностью
множеств А и В называется множество С, содержащее те и только те элементы
множества А, которые не принадлежат множеству В.
4.
Симметричная разность множеств.
Симметричной
разностью множеств А и В называется множество С, содержащее элементы множества
А, не входящие во множество В, и элементы множества В, не входящие во множество
А.
5. Декартовое
произведение множеств.
Декартовым
произведением множеств А и В называется множество С, содержащее упорядоченные
пары элементов множеств, причем первый элемент пары принадлежит множеству А,
второй множеству В.
Практическое задание:
Задача №1.
Составить программу, которая
вырабатывает и выводит на экран дисплея наборы случайных чисел для игры в
"Спортлото 5 из 36".
Для заполнения каждой карточки
спортлото необходимо получить набор из пяти псевдослучайных чисел. К этим
числам предъявляются два требования:
·
числа должны находиться в диапазоне 1..36;
·
числа не должны повторяться.
Задача
№ 2.
Реализовать
на языке программирования Pascal программу, способную выполнять следующие операции
над множествами: объединение, пересечение, разность, симметричная разность,
декартовое произведение.
Описание
метода решения задачи:
Данная
программа, написанная на языке Паскаль, начинается с раздела переменных, полный
список которых представлен в Таблице 1. В основе алгоритма программы лежат пять
процедур, каждая из которых отвечает за закрепленную за ней операцию над
множеством (см. Таблицу 2). Выбор требуемой операции происходит путем
использования оператора Case.
Работа программы
начинается с вывода сообщения о необходимости ввести количество элементов
первого и второго множеств. Далее программа требует ввести элементы множеств,
заканчивая ввод каждого элемента нажатием клавиши Enter. После ввода элементов
множеств необходимо выбрать операцию, которая должна быть выполнена над ними.
Результат выполнения операции выводится на экран.
Таблица 1. Список идентификаторов переменных:
Идентификатор
|
Тип
|
Применение
|
Zoopark1
|
Zoopark1:
array [1..33] of string
|
Хранит
элементы первого зоопарка
|
Zoopark2
|
Zoopark2:
array [1..33] of string;
|
Хранит
элементы второго зоопарка
|
Rezultat
|
rezultat:
array [1..75] of string;
|
Хранит
результат выполнения операции
|
Zpark1
|
zpark1:
array [1 ..33] of string;
|
Для
временного хранения первого зоопарка
|
zpark2
|
zpark2:
array [1..33] of string;
|
Для
временного хранения второго зоопарка
|
x,
y, i, j, d, t, k
|
integer
|
Для
организации циклов
|
V
|
integer
|
Размер
первого множества
|
w
|
integer
|
Размер второго множества
|
wiborka
|
char
|
Хранит номер выбранной операции
|
Таблица 2. Список процедур:
Имя процедуры
|
Формальные параметры
|
Вызов процедуры
|
Применение
|
obedinenie
|
нет
|
obedinenie
|
Операция
объединения множеств
|
peresechenie
|
нет
|
peresechenie
|
Операция
пересечения множеств
|
raznost
|
нет
|
raznost
|
Операция
разности множеств
|
simmetrichnaya_raznost
|
нет
|
Simmetrichnaya
raznost
|
Операция
симметричной разности множеств
|
dekartovoe_proizvedenie
|
нет
|
Dekartovoe
proizvedenie
|
Операция
декартового произведения множеств
|
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.