1.         В пределах одной записи имена полей должны быть уникальны.

2.         Имена полей могут совпадать с другими идентификаторами в пределах текущего блока, а также с именами полей в других записях.

Рассмотрим случай, когда в составе записи содержатся поля, имеющие также тип записи. Пусть для комбинированного типа Person необходимо хранить информацию о дате рождения человека. Эту информацию можно представить в виде трех полей в составе типа Person. Однако логичнее для этого определить отдельный тип, так как в этом случае он может использоваться в описании других типов и переменных.

Пример:

Type

Date = Record

Month: (Jan,Feb,Mar,Apr,May,June,July,Aug, Sept, Oct, Nov, Decem);

Day: 1..31;

Year: 1900..2000

end;

Person = Record

Name, SecondName, SurName: string [20];

Sex: (Male, Female);

Speciality: Word;

Birthday: Date

end;

Доступ к полям из элемента Birthday производится по общим правилам, например:

Sasha. Birthday. Year:= 1970;

Masha. Birthday. Month:= May;

3. Множественные типы

Множественные типы принадлежат к несколько непривычным и сравнительно редко используемым средствам языка Паскаль. Однако в ряде случаев использование множественных типов позволяет повысить компактность и наглядность программ.

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

Синтаксис описания некоторого множественного типа имеет вид:

Type

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

Здесь:

<имя типа> - правильный идентификатор языка;

set, of - зарезервированные слова (множество, из);

<базовый тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER, LONGINT (т.е. типы BYTE и CHAR, перечислимые типы, а также ограниченные типы, образованные из них).

Пример:

Type

digitChar = set of ‘0’..’9’;

digit = set of 0..9;

elemColor = (Red, Yellow, Blue);

color = set of Color;

Var

s1, s2, s3: digitChar;

s4, s5, s6: digit;

myColor: Color;

Примечания

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

Например, не может быть множества: 1, 2, 2.

2.         Порядок “расположения” элементов в множестве не имеет значения.

Множества:

1, 2, 3

3, 2, 1

одинаковы.

Это соответствует принятой в математике трактовке множества как бесповторной неупорядоченной совокупности объектов.

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

Например:

s6:= [1, 2, 3];

s4:= [ 0, 1, 2, 3+4 ];

s5:= [ 0..3, 6 ]; {эквивалентно множеству [0, 1, 2, 3, 6]}

s1:= [ ‘0’..’5’ ];

s2:= []; {пустое множество}

myColor:= [ Red ];

4. Файловые типы

Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Object Pascal, кроме файлов. Иными словами, нельзя создать “файл файлов”. В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Файловый тип можно задать одним из трех способов:

<имя> = File of <тип>;

<имя> = TextFile;

<имя> = File;

Здесь <имя> - имя файлового типа (правильный идентификатор);

File, of - зарезервированные слова (файл, из); TextFile - имя стандартного типа текстовых файлов; <тип> - любой тип Object Pascal, кроме файлов.

5. Указатели

Object Pascal предоставляет в распоряжение программиста гибкое средство управления динамической памятью - так называемые указатели. Указатель - это переменная, которая в качестве своего значения содержит адрес байта памяти. С помощью указателей можно размещать в динамической памяти любой из известных в Object Pascal типов данных. Лишь некоторые из них (Byte, Char, ShortInt, Boolean) занимают во внутреннем представлении один байт, остальные - несколько смежных. Поэтому на самом деле указатель адресует лишь первый байт данных.

Как правило, указатель связывается с некоторым типом данных. Такие указатели называют типизированными. Для объявления типизированного указателя используется значок ^, который помещается перед соответствующим типом, например:

var

p1: ^Integer;

р2: ^Real;


Информация о работе «Типы данных в Object Pascal»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27554
Количество таблиц: 2
Количество изображений: 0

Похожие работы

Скачать
29034
4
1

... фактически игнорирует это указание: “упаковка” данных в Object Pascal осуществляется автоматачески везде, где это возможно.   1.2.1 Массивы Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно ...

Скачать
49877
5
0

... в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры. Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi. Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений ...

Скачать
162712
21
0

... F := SomeFunction; напротив, оператор I := F(4); вызывает эту функцию (запускает ее алгоритм) и после обработки возвращает результат вычислений переменной I.   15.6. Формальные и фактические параметры В Object Pascal есть понятия формального и фактического параметров. Формальным называется параметр, который содержится в заголовке описания подпрограммы, а фактическим – параметр в обращении к ...

Скачать
112819
0
0

... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой --------------------------------------------------   Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...

0 комментариев


Наверх