русс | укр

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

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

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

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


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

Множества


Дата добавления: 2015-07-23; просмотров: 646; Нарушение авторских прав


Множества - это наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется Object Pascal. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.

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

В общем виде тип множества задается следующим образом:

 

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

 

где <имя типа> - имя создаваемого типа;

<базовый тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме Word, Integer, Longint, Int64.

Пример определения и задания множеств:

Type

digitChar = set of'0'..'9';

digit = set of0. .9;

Var

sl,s2,s3 : digitChar;

s4,s5,s6 : digit;

Begin

s1 = ['1', '2', '3'];

s2 = ['3', '2', '1'];

s3 = ['2', '3'];

s4 = [0..3, 6];

s5 = [4, 5];

s6 = [3..9];

End.

 

В этом примере множества s1 и s2 эквивалентны, а множество s3 включено в s2 , но не эквивалентно ему.

Для задания множества используется так называемый конструктор множества: список спецификаций элементов множества, отделенных друг от друга запятыми; список обрамляется квадратными скобками.

Спецификациями элементов могут быть константы или выражения базового типа, а также тип-диапазон того же базового типа.

Операции, определенные над множествами представлены в табл. 3.10.



 


Таблица 3.10.Операции над множествами

Знак Операция Результат
* пересечение множеств результат содержит элементы, общие для обоих множеств
+ объединение множеств результат содержит элементы первого множества, дополненные недостающими элементами из второго множества
- разность множеств результат содержит элементы из первого множества, которые не принадлежат второму
= проверка эквивалентности возвращает True, если оба множества эквивалентны
< > проверка неэквивалентности возвращает True, если оба множества неэквивалентны
<= проверка вхождения возвращает True, если первое множество включено во второе
>= проверка вхождения возвращает True, если второе множество включено в первое
in проверка принадлежности в этой бинарной операции первый элемент - выражение, а второй - множество одного и того же типа; возвращает True, если выражение имеет значение, принадлежащее множеству

Дополнительно к этим операциям можно использовать две следующие процедуры:

· include(s, i) – включает новый элемент i в множество s.

· exclude(s, i) – исключает элемент i из множества s.


Записи

В практике программирования довольно часто приходится иметь дело с данными, которые естественным образом состоят из других данных. Например, сведения о студентах содержат фамилию, имя, отчество, число, месяц и год рождения, домашний адрес и другие данные. Для представления подобной информации в языке Object Pascal используется структура, которая носит название запись (record).

Запись – это структура данных, состоящая из фиксированного количества компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

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

В общем виде объявление типа «запись» выглядит так:

 

<имя_типа_записи> = record

<имя_поля_1> : тип_1;

<имя_поля_2> : тип_2;

<имя_поля_N> : тип_N;

end;

 

где <имя_типа_записи> - имя создаваемого типа «запись»;

<имя_поля_x> и тип_x – имя и тип компонента (поля) записи.

Примеры объявлений:

Type

TStudent = record

SurName: string[20];

Name: string[20];

Day: integer;

Month: integer;

Year: integer;

Address: string[50];

end;

 

После объявления типа записи можно объявить переменную-запись, например:

Var

student : TStudent;

 

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

Например, команда

 

writeln ('Имя: ', student.Name, #10#13 + 'Адрес: ',

student.Address);

 

выводит на экран содержимое полей Name (имя) и в следующей строке Address (адрес) переменной-записи student.

Иногда тип переменной-записи объявляют непосредственно в разделе объявления переменных. В этом случае тип записи указывается сразу за именем переменной, через двоеточие. Например, запись student может быть объявлена в разделе var следующим образом:

Var

student:record

SurName: string[20];

Name: string[20];

Day: integer;

Month: integer;

Year: integer;

Address: string[50];

end;

Специальный оператор присоединения withпозволяет использовать в тексте программы имена полей без указания имени переменной-записи. В общем виде оператор with выглядит следующим образом:

with<имя_записи> do <оператор>;

 

где <имя_записи> – имя переменной-записи;

<оператор> – произвольный оператор (в том числе составной), в котором при обращении к полям записи <имя_записи>, имя записи можно не указывать.

Например, рассмотренный выше пример вывода имени и адреса студента может быть представлен так:

 

withstudent do

writeln ('Имя: ', Name, #10#13 + 'Адрес: ', Address);




<== предыдущая лекция | следующая лекция ==>
Операции с массивами | Подпрограммы (процедуры и функции)


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


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

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

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


 


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

 
 

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

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