Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тип данных множество. Представление в памяти. Основные операции с множествами.
Множества Множество напоминает перечислимый тип, но отличается от него тем, что элементы в нем не упорядочены (в множестве нет ни самого младшего, ни самого старшего элементов). В множество входят также все допустимые подмножества (все мысли- мые комбинации его элементов), что приводит к огромному числу вариантов, поэтому количество элементов в множестве не может быть больше, чем 256. Множество описывается так: type тип-множества = eet of диапазон-значений-множества; В качестве диапазона указывается любой тип Паскаля, число элементов в котором не более 256: Char, Byte, 0..255, TFootballTeam и так далее. type MySet = set of 0.. 2 5 5; type MySet = set of Byte; type MySet = set of (Spartak, CSKA, Dynamo!; Конкретные значения множества задаются перечислением списка значений через запятую, который берется в квадратные скобки. MySet:= [1, 2, 5, 10]; В таком списке можно дополнительно указывать диапазоны значений: MySet:= [2, 4, 8, 12..21]; Дополнительные операции над множествами описаны в следующей таблице. Таблица 1.6. Дополнительные операции над множествами Название операции Действие + (объединение) Результирующее множество состоит из элементов обеих множеств, указанных в качестве операндов (одинаковые элементы не дублируются). Выражение [1,2,3] +• [3/4,5] равно [1,2,3,4,5] - (разность) Результирующее множество состоит из тех элементов множества, указанного в качестве левого операнда, которые отсутствуют во множестве, указанном в качестве правого операнда. Выражение [1,2,3] - [3,4,5] равно [1,2] * (пересечение) Результирующее множество состоит из элементов, имеющихся в каждом из множеств,указанных в качестве операндов. Выражение [1,2,3] * [3,4,5] равно [3]__ При работе с множествами допускается использование операций отношения (=, <>, >=, <=), объединения, пересечения, разности множеств и операции in. Операции сравнения (=, <>). Два множества считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет. Два множества A и B считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента.
Операции принадлежности (>=, <=). Выражение A >= B равно True, если все элементы множества B содержатся в множестве A. Выражение A <= B равно True, если выполняется обратное условие, т.е. все элементы множества A содержатся в множестве B.
Операция in. Используется для проверки принадлежности элемента указанному множеству. Обычно применяется в условных операторах.
Операция in позволяет эффективно и наглядно выполнять сложные проверки условий, заменяя иногда десятки других операций. Например, оператор
можно заменить более коротким:
Операцию in иногда пытаются записать с отрицанием: X not in S. Такая запись является ошибочной, так как две операции следуют подряд. Правильная запись имеет вид: not (X in S). Процедура Include (S, I) включает в множество S элемент I. Она дублирует операцию + (плюс) с той лишь разницей, что при каждом обращении включает только один элемент и делает это более эффективно. Процедура Exclude (S, I) исключает из множества S элемент I. Она дублирует операцию – (минус) с той лишь разницей, что при каждом обращении исключает только один элемент и делает это более эффективно.
Использование в программе множеств дает ряд преимуществ: значительно упрощаются сложные операторы if, улучшается наглядность программы и понимание алгоритма решения задачи, экономится время разработки программы. Поэтому множества широко используются в библиотеке компонентов среды Delphi. 12. Способы преобразования типов в Delphi.(еще чет для классов надо) Преобразование типов В ряде случаев требуется гарантировать, что результат вычисления выражения при- надлежит конкретному типу. Например, вычисления могут производиться над чис- лами типа Longint, а результат должен принадлежать типу Byte. Такая операция называется приведением типов. Для этого применяют так называемые преобразо- ватели типов, которые напоминают стандартные функции Паскаля с именами, сов- падающими с именами базовых типов (Byte, Integer и другие). Результат, возвраща-
емый таким преобразователем, гарантированно лежит в диапазоне указанного типа. При этом, конечно, возможна потеря значащих цифр: берется остаток от деления значения аргумента на максимально допустимое значение соответствующего типа. Определение собственных типов данных 53 Например, значение Byte{300) равно 44 var X: Integer; L: Longint; Begin X;= IntegerjL * 1234567); Однако подобным способом невозможно преобразовать число типа Real в число типа Integer или любое число в строку. Для таких, более сложных, преобразований типов в Delphi 7 имеется набор стандартных функций, упрощающих процесс преобразован! 1я. Таблица 1.9. Стандартные функции преобразования типов Имя функции Назначение Round Округление дробного числа до ближайшего целого. Значение Round{ 3.74) равно 4 Trunc Отбрасывание дробной части числа. Значение Тшпс(3.74) равно 3 IntToStr Преобразование целого числа в строку. Значение IntToStr(12987) равно '12987' FloatToStr Преобразование дробного числа в строку. Значение FloatToStr(3.74) равно '3.74' StrToInt Преобразование строки в целое число. Значение StrToInt('129B5') равно 12985 StrToFloat Преобразование строки в дробное число. Значение StrToFloatf '3.14') равно 3.14 Приведение типов переменных Помимо стандартных функций, в Паскале имеется еще одна возможность явно ука- зывать, в какой тип должны быть приведены конкретные данные. Эта возможность используется в операторе присваивания, когда переменная, стоящая в левой части, ≪охватывается^ названием типа, соответствующего типу выражения правой части оператора. Например: var С: Byte; Char(C):= ' А '; Переменной С будет присвоен код ASCII символа 'А'. При этом необходимо, чтобы длины (в байтах) переменной и присваиваемого значения совпадали. Другая форма записи этого оператора: С:= Byte(' А ');__ http://www.programmersclub.ru/is-as-gruzin/ про классы
|
||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-21; просмотров: 243; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.107.90 (0.01 с.) |