Пр_10. Описание множеств. Операции над множест..

Практическая работа № 9
Описание множеств. Операции над множествами
Цель: Научиться создавать программы используя множества.
Оборудование: ЭВМ.
Порядок выполнения работы:
Повторить теоретический раздел
Ознакомиться с условием поставленной задачи(по варианту)
Составить алгоритм
Составить блок-схему
Составить программу
Запустить программу, отладить ее и получить результат
Показать преподавателю рабочую программу и проанализировать результат
Подготовить отчет
Теоретическая часть:
Множества
Понятие множества в языке ПАСКАЛЬ основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом.
Множественный тип описывается с помощью служебных слов 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'] = ['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
Величины множественного типа не могут быть элементами списка ввода - вывода.
В каждой конкретной реализации транслятора с языка ПАСКАЛЬ количество элементов базового типа, на котором строится множество, ограничено. В TURBO PASCAL количество базовых элементов не должно превышать 256.
Инициализация величин множественного типа производится с помощью типизированных констант:
const seLit: Set of 'A'..'D'= [];
Проиллюстрируем применение данных множественного типа на примере.
Пример1. Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые входят в данную последовательность.
Программа
program glas;
var gl,gl1:set of char;
i,k:in
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Протокол работы программы.
Vvedite stoku
aioaoijhgfdaioknbvc
V stroke=9glasn
a i o

Задания для самостоятельной работы по вариантам:
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые входят в каждое слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые не входят ни в одно слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые входят хотя бы в одно слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые не входят в первое слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые входят только в последнее слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые встречаются более чем в одно слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые не входят в каждое слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые входят в более чем одно слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые входят в первое слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые встречаются только раз.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все гласные буквы, которые входят в последнее слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые входят в каждое нечетное слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые входят в каждое четное слово.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые входят в в слово более 5 раз.
Дана непустая последовательность слов из строчных русских букв. Слова разделяются запятыми. В конце последовательность стоит точка. Написать программу, которая выводит в алфавитном порядке все согласные буквы, которые входят в каждое нечетное слово 1 раз.
Задание на дом: подготовить отчет по проделанной работе
Содержание отчета:
Постановка задачи
Алгоритм решения задачи.
Список используемых переменных.
Блок-схему
Текст программы.
Результат ее выполнения.
Выводы.








13PAGE 15


13PAGE 14515






























Заголовок 2 Заголовок 315

Приложенные файлы

  • doc 5868616
    Размер файла: 64 kB Загрузок: 0

Добавить комментарий