русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Занятие 1. Множественный тип данных. Множество. Элемент множества. Способы задания множества. Объединение множеств. Разность множеств. Пересечение множеств.


Дата добавления: 2014-11-28; просмотров: 537; Нарушение авторских прав


Множественный тип данных напоминает перечислимый тип данных. Вместе с тем, множество – набор элементов, не организованных в порядке следования. В математике множество – любая совокупность элементов произвольной природы. Понятие множества в программировании значительно уже математического понятия.

Определение. Под множеством в Паскале понимается конечная совокупность элементов, принадлежащих некоторому базовому типу.

В качестве базовых типов могут использоваться: перечислимые типы данных, символьный и байтовый типы или диапазонные типы на их основе.

Такие ограничения связаны с формой представления множества в языке и могут быть сведены к тому, что функция Ord для используемого базового типа должна быть в пределах от 0 до 255.

Множество имеет зарезервированное слово set of и вводится следующим описанием

Type

< имя типа > = set of < имя базового типа >;

Var

< идентификатор,... >:< имя типа >;

Рассмотрите примеры описания множеств:

Type

SetByte = set of byte; {множество 1, определённое над типом byte}

SetChisla = set of 10 ... 20; {множество 2, определённое в диапазоне от 10 до 20

Symbol = set of char; {множество, определённое на множестве символов}

Month = (January, February, March, April, May, June, July, August, September, October, November, December);

Season : set of Month; {тип множества, определённый на базе перечислимого типа Month}

Var

Letter, Digits, Sign : Symbol {множествa, определённые над символьным типом}

Winter, Spring, Summer, Autumn, Vacation, WarmSeason : Season;

Index : SetChisla=[12, 15, 17];

Operation : set of (Plus, Minus, Mult, Divid);

Param : set of 0..9=[0, 2, 4, 6, 8];

Для переменных типа множества в памяти отводится по 1 биту под каждое возможное значение базового типа. Так, под переменные Letter, Digits, Sign будет отведено по 256/8=32 байта. Для переменной Winter, базовый тип которой (Month) имеет 12 элементов, необходимо 2 байта, причем второй используется только наполовину. Если множество содержит какой-то элемент, то связанный с ним бит имеет значение 1, если нет – 0.



Для того, чтобы дать переменной множества какое-то значение, используют либо конструктор множества – перечисление элементов множества через запятую в квадратных скобках

Sign:=['+', '–'];

Spring:=[March, April, May];

b:=[ 'k', 'l', 'd' ]

либо определение через диапазон. Тогда в множество включены все элементы диапазона

Digits:=['0'..'9'];

WarmSeason := [May .. September];

Обратите внимание, что в определении множества Digits использованы символы в таблице ASCII-кодов, а не целые числа.

Обе формы конструирования могут сочетаться:

Vacation:=[January, February, June .. August];

В программах множества часто используются как константы, в этом случае их можно определить следующим образом:

{постоянное множество допустимых символов

Const

YesOrNo = ['Y', 'y', 'N', 'n'];

{множества – типизированные константы}

Const

Digits : set of char=['0'..'9'];

DigitsAndLetter : set of char=['0'..'9', 'a'..'z', 'A'..'Z'];

{применение операции "+" для объявления множества-константы}

Const

Yes = ['Y', 'y'];

No = ['N', 'n'];

YesOrNo = Yes+No;

Объединение множеств (+)

Определение. Объединением 2-х множеств называется третье множество, которое содержит элементы, которые принадлежат хотя бы одному из множеств операндов, при этом каждый элемент входит в множество только один раз.

Объединение множеств записывается как операция сложения.

Type

Symbol = set of char;

Var

SmallLatinLetter, CapitalLatinLetter, LatinLetter : Symbol;

Begin

. . . . . .

SmallLatinLetter :=['a'..'z'];

CapitalLatinLetter := ['A'..'Z'];

LatinLetter := SmallLatinLetter+CapitalLatinLetter;

. . . . . .

End.

В операции объединения множеств могут участвовать и отдельные элементы множества.

Например, допустима следующая запись, где два элемента и множество объединяются в новое множество:

WarmSeason := May+Summer+September;

или другая запись

B: = B+['c'],

которую можно применить для организации множества в цикле, если заменить множество ['c'] переменной Sim того же типа, что и множество B, и считывать с клавиатуры данные в переменную Sim, а затем объединяя с множеством В.

B: = B+Sim,



<== предыдущая лекция | следующая лекция ==>
Занятие 6. Решение задач. | Разность множеств (-)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.348 сек.