|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
МножестваПонятие множества в языке Pascal основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом. Множественный тип описывается с помощью служебных слов Set of, например: type M = Set of В; Здесь М – множественный тип, В – базовый тип.
Принадлежность переменных к множественному типу может быть определена прямо в разделе описания переменных. Константы множественного типа записываются в виде заключенной в квадратные скобки последовательности элементов или интервалов базового типа, разделенных запятыми. Константа вида [] означает пустое подмножество. Множество включает в себя набор элементов базового типа, все подмножества данного множества, а также пустое подмножество. Если базовый тип, на котором строится множество, имеет К элементов, то число подмножеств, входящих в это множество, равно 2 в степени К. Порядок перечисления элементов базового типа в константах безразличен. Значение переменной множественного типа может быть задано конструкцией вида [Т], где Т – переменная базового типа. К переменным и константам множественного типа применимы операции присваивания (:=), объединения (+), пересечения (*) и вычитания (—). Результат выполнения этих операций есть величина множественного типа: 1) ['A','B'] + ['A','D'] даст ['A','B','D']; 2) ['A'] * ['A','B','C'] даст ['A']; 3) ['A','B','C'] – ['A','B'] даст ['C'].
К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип: 1) ['A','B'] = ['A','C'] даст FALSE; 2) ['A','B'] <> ['A','C'] даст TRUE; 3) ['B'] <= ['B','C'] даст TRUE; 4) ['C','D'] >= ['A'] даст FALSE.
Кроме этих операций, для работы с величинами множественного типа используется операция in, проверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции – булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения. При использовании в программах данных множественного типа выполнение операций происходит над битовыми строками данных. Каждому значению множественного типа в памяти ЭВМ соответствует один двоичный разряд. Величины множественного типа не могут быть элементами списка ввода-вывода. В каждой конкретной реализации транслятора с языка Pascal количество элементов базового типа, на котором строится множество, ограниченно. Инициализация величин множественного типа производится с помощью типизированных констант. Приведем некоторые процедуры для работы с множествами. 1. Procedure Exclude(var S: Set of T; I:T); Удаляет элемент I из множества S. S – переменная типа «множество», и I – выражение типа, совместимого с исходным типом S. Конструкция Exclude(S, I) соответствует S: = S – [I], но генерирует более эффективный код. 2. Procedure Include(var S: Set of T; I:T); Добавляет элемент I к множеству S. S – переменная типа «множество», и I – выражение типа, совместимого с типом S. Конструкция Include(S, I) соответствует S: = S + [I], но генерирует более эффективный код.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |