- Дипломы
- Курсовые
- Рефераты
- Отчеты по практике
- Диссертации
Работа с множествами в среде pascalabc
| Код работы: | K011041 |
| Тема: | Работа с множествами в среде pascalabc |
Содержание
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное учреждение высшего профессионального образования «Дагестанский государственный университет народного хозяйства»
Факультет информационных технологий и управления
РАБОТА С МНОЖЕСТВАМИ В СРЕДЕ PASCALABC
(курсовая работа)
Выполнил студент
1-го курса, 1-й группы
Абдулазизов З.М.
_______________
(подпись)
Научный руководитель
Ахмедова З.А.
_______________
(подпись)
«__»_________20__г.
Оценка ___________.
Множества в языке Pascal
Множество - представляет собой структурированный тип данных, представляющий собой набор объектов, связанных между собой функцией или группой атрибутов, которые можно рассматривать как одно целое. Каждый объект в наборе называется элементом набора.
Все элементы набора должны принадлежать одному из порядковых типов, содержащему не более 256 значений. Этот тип называется базовым типом набора. Базовый тип определяется диапазоном или перечислением.
Диапазон значений типа - это набор всех возможных подмножеств, состоящих из элементов базового типа. В выражениях Паскаля значения элементов набора указаны в квадратных скобках: [1,2,3,4], ['a', 'b', 'c'], ['a' .. 'г'].
Если в наборе нет элементов, он называется пустым и обозначается []. Число элементов множества называется его емкостью.
Набор может принимать все значения базового типа. Базовый тип не должен превышать 256 возможных значений. Таким образом, базовым типом набора могут быть байтовые, char, boolean и производные типы.
Набор в памяти хранится как битовый массив, в котором каждый бит указывает, принадлежит ли элемент объявленному набору, или нет. Максимальное количество элементов набора - 256, а данные типа набора могут занимать не более 32 байт.
Количество байтов, выделенных для типа данных набора, рассчитывается по формуле:
ByteSize = (max div 8) - (min div 8) + 1,
Где max и min - верхняя и нижняя границы базового типа заданного множества.
Число байтов для конкретного элемента «E» вычисляется по формуле:
ByteNumber = (E div 8) - (min div 8),
Номер бита внутри этого байта:
BitNumber = E mod 8
Неважно, как писать элементы набора внутри конструктора. Например, [1, 2, 3] и [3, 2, 1] - эквивалентные множества.
Каждый элемент в наборе подсчитывается только один раз. Следовательно, множество [1, 2, 3, 4, 2, 3, 4, 5] эквивалентно [1..5].
Переменные множественного типа описываются следующим образом:
Var<идентификатор>: набор <базового типа>;
Например:
Var A, D: Set of Byte;
B: Set Of 'a'..'z';
C: Set Of Boolean;
Мы не можем вводить значения в нескольких переменных с помощью процедуры ввода и выводить их с помощью процедуры вывода.
Множественная переменная может получать только определенное значение в результате операции присваивания:
<Несколько переменных>: = <множественное выражение>;
Например:
A: = [50, 100, 150, 200];
B: = ['m', 'n', 'k']; C: = [True, False];
D: = A;
Кроме того, выражения могут включать в себя операции над множествами.
Операции над множествами
Объединение двух множеств A и B является множеством, состоящим из элементов, входящих, по крайней мере, в одно из множеств A или B. Знак операции объединения в Pascal "+".
Примеры:
1) [1, 2, 3, 4] + [3, 4, 5, 6] => [1, 2, 3, 4, 5, 6]
2) []+[‘a’..’z’]+[‘A’..’E’, ‘k’] => [‘A’..’E’, ‘a’..’z’]
3) [5<4, true and false] + [true] => [false, true]
Пересечение двух множеств A и B представляет собой множество, состоящее из элементов, которые одновременно появляютсяв множестве A и в множестве B. Знак операции пересечения в Pascal "*"
Примеры:
1) [1, 2, 3, 4] * [3, 4, 5, 6] => [3, 4]
2) [‘a’..’z’]*[‘A’..’E’, ‘k’] => [‘k’]
3) [5<4, true and false] * [true] => []
Разностью двух множеств A и B называется множество, состоящее из элементов множества A, не входящих во множество B.
Примеры:
1a) [1, 2, 3, 4] - [3, 4, 5, 6] => [1, 2]
1b) [3, 4, 5, 6] - [1, 2, 3, 4] => [5, 6]
2a) [‘a’..’z’]-[‘A’..’E’, ‘k’] => [‘a’..’j’, ‘i’..’z’]
2b) [‘A’..’E’, ‘k’] - [‘a’..’z’] => [‘A’..’E’]
3a) [5<4, true and false] - [true] => [false]
3b) [true] - [5<4, true and false] => [true]
Операция возникновения. Это операция, которая устанавливает связь между множеством и скаляром, тип которого совпадает с базовым типом набора. Если x - такая скалярная величина, а M - множество, то входная операция записывается как: x в M.
Структурированные типы данных
Структурированные типы данных определяют наборы одинаковых или разных типов компонентов. Типы компонентов формируются из других типов (простых, структурированных, указателей и т. Д.). Данные.
В языке Pascal существуют следующие структурированные типы.
тип-массив;
тип-запись;
тип-множество;
тип-файл.
Массив
Тип массива - фиксированное количество упорядоченных компонентов того же типа, снабженное индексами. Он может быть одномерным и многомерным. Чтобы указать тип массива, используйте массив зарезервированных слов, за которым следует индексный тип компонентов (в квадратных скобках), а затем после типа слова самих компонентов:
type
<имя типа> = array[<тип индекса(индексов)>] of <тип компонент>;
Пример:
type
Arr = array[1..3] of Real; {тип—массив из 3 вещественных чисел}
Matrix = array[1..3, 1..2] of Integer; {тип - двумерный массив целых чисел, состоящий из 3 строк и 2 столбцов}
Введя тип массива, вы можете указать переменные или типизированные константы этого типа. Размерность массива может быть любой, компоненты могут быть любыми, включая структурированные, типы, индексы (индексы) могут быть любого типа, за исключением типа Longint.
При указании значения константного массива компоненты, которые указывают круглые скобки и разделяются запятыми, и если массив является многомерным, внешние скобки соответствуют левому индексу, заключенные в них круглые скобки являются следующим индексом и т. д.
Например:
var
Ml, M2: array [1..3] of Real;
Matr: array[1..3, 1..2] of Integer;
Запись
Тип-запись включает в себя ряд компонентов, называемых полями, которые могут быть разных типов. После указания типа записи после записи зарезервированного слова перечислите все поля типа записи с двоеточием, за которыми следуют их типы, и заполните образец примера словом end. Поля разделяются точкой с запятой. Количество полей может быть любым.
Пример:
type
Complex = record {Тип комплексных чисел}
Re: Real;
Im: Real
end;
Data = record {Тип - дата рождения}
Year: Integer;
Month: 1..12;
Day: 1..31
end;
Person = record {Тип - сведения о сотруднике}
Name: string[20];
Sex: (Male, Female);
Age: Integer;
Married: Boolean
end;
После введения типа-записи можно затем задать переменные или типизированные константы этого типа - записи. При задании значений константе ее поля записываются в круглых скобках через точку с запятой. Для задания значения каждого поля сначала указывается имя поля, а затем через двоеточие - его значение. Тип-запись может иметь вариантную часть, изменяющуюся при разных реализациях, например, в типе-записи параметров геометрических фигур для квадрата задается сторона, для треугольника - две стороны и угол между ними, для окружности - радиус и т. д. Вариантная часть может быть только одна и должна располагаться в конце записи.
Пример:
type
Figure = (Square, Triangle, Circle);
Param = record
X, Y: Real; {координатыточкипривязки}
case Fig: Figure of {параметрыфигур}
Square: (Side: Real);
Triangle: (Sidel, Side2, Angle: Real);
Circle: (Radius: Real)
end;
varMySquare, MyCircle: Param;
Вариантная часть начинается со слова case, за которым следует переменная выбора варианта (в примере Fig) с типом. Далее указываются константы значения, которые могут принимать переменные выбора варианта (в примере Квадрат, Треугольник, Круг). После каждой константы поля этого варианта записи записываются в круглых скобках в круглых скобках с указанием их типов. Скобки необходимы, даже если для этого варианта отсутствует вариантная часть. Следует отметить, что вариантная часть не заканчивается концом концевой скобки, как в обычной конструкции CASE, поскольку конечный конец всего типа.
Множество
В языке Pascal типом набора является множество - степень исходного набора объектов типа заказа, т. Е. Множество всех возможных комбинаций объектов исходного набора. Число элементов исходного набора в TurboPascal не может быть больше 256, а порядковые номера элементов (то есть значения функции Ord) должны быть между 0 и 255.
Чтобы указать тип набора, вы должны использовать зарезервированные слова set и of, а затем указать элементы этого набора, обычно в форме перечисления или диапазона, например:
type
Alfa = set of 'A'..'Z';
Count = set of (Plus, Minus, Mult, Divid);
Ten = set of 0..9;
Number = set of '0'..'9' ;
Введя тип-множество, можно задать переменные или типизированные константы этого типа-множества.При задании значений константе-множеству ее элементы перечисляются через запятую (допустимо указывать диапазоны) и помещаются в квадратные скобки. Например, для введенных выше типов можно задать такие переменные и типизированные константы:
var
CharVal: Alfa;
Operation: Count;
const
Index: Ten = [0, 2, 4, 6, 8];
Digit: Number = ['0'..'9'];
Примечание.
Так же как и для других структурированных типов, тип-множество можно ввести непосредственно при задании переменных или типизированных констант:
var
CharVal: set of 'A'..'Z';
Operation: set of (Plus, Minus, Mult, Divid);
const
Index: set of 0..9 = [0, 2, 4, 6, 8];
Digit: set of '0'..'9'=['0'..'9'];
Мы можем назначить программе значение в программе. Как правило, значение устанавливается с помощью конструктора set. Конструктор задает набор элементов, перечисляя выражения в квадратных скобках, значения которых задаются элементами этого множества. Допустимо использовать диапазоны элементов.
Каждый набор включает так называемые. Пустое множество [], которое не содержит никаких элементов. Конструктор set также может использоваться непосредственно в операциях над множествами.
Для множеств определены следующие операции:
+ - объединение множеств;
- - разность множеств;
* - пересечение множеств;
= - проверка эквивалентности двух множеств;
<> - проверка неэквивалентности двух множеств;
<= - проверка, является ли левое множество подмножеством правого множества;
>= - проверка, является ли правое множество подмножеством левого множества;
in - проверка, входит ли элемент, указанный слева, в множество, указанное справа.
Файл
Типичный файл представляет собой последовательность компонентов одного и того же типа, расположенных на внешнем устройстве (в стандарте языка в качестве основы берется местоположение данных на лентах). Компоненты могут быть любого типа, за исключением типа файла (или содержащего компоненты типа файла) и типа объекта. Количество компонентов в файле не объявлено. Чтобы указать тип файла, используйте файл зарезервированных слов и значение, а затем укажите тип компонента файла.
Пример.
type
Number = file of Integer; {тип-файлцелыхчисел}
Symb = file of 'A'..'Z'; {тип—файлпрописныхлатинскихбукв}
Стандартный тип текста определяет тип файла, который содержит символы, которые объединены в строки. Обратите внимание, что текстовый тип в TurboPascal не эквивалентен Char-файлу. Введя тип файла, вы можете определить переменные типа файла:
VarFl, F2: Число; F3: текст; FF4: Символы;
Переменные файла имеют специальное приложение. Выше них вы не можете выполнять какие-либо операции (присваивать значение, сравнивать и т. Д.). Их можно использовать только для выполнения операций над файлами (чтение, запись, удаление файла и т. Д.). Работа с файлами будет рассмотрена в разделе 11. Кроме того, с помощью переменной файла вы можете получить информацию о конкретном файле (тип, параметры, имя файла и т. Д.).
Махачкала, 2017....................... |
Для получения полной версии работы нажмите на кнопку "Узнать цену"
| Узнать цену | Каталог работ |
Похожие работы:

