Пользовательские типы данных

Например бывает удобным совместить в одной переменной сразу ряд однотипных данных или же предусмотреть хранение данных разных типов например строк и чисел. К счастью в Object Pscl имеется возможность создавать собственные типы данных на основе уже имеющихся совмещая их или комбинируя. Например для создания упорядоченного списка однотипных данных используют массивы rrys а для объединения нескольких типов в один записи records.

2014-07-24

27.98 KB

0 чел.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск


Пользовательские типы данных

При разработке программ довольно часто оказывается недостаточно тех типов данных, которые представлены языком программирования. Например, бывает удобным совместить в одной переменной сразу ряд однотипных данных, или же предусмотреть хранение данных разных типов, например, строк и чисел. К счастью, в Object Pascal имеется возможность создавать собственные типы данных на основе уже имеющихся, совмещая их, или комбинируя. Например, для создания упорядоченного списка однотипных данных используют массивы (arrays), а для объединения нескольких типов в один - записи (records).

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

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

Среди типов данных различают стандартные (предопределенные разработчиками языка) ипользовательские (определяемые программистом в своей программе).

Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных (data type) — это множество величин, объединенных определенной совокупностью допустимых операций.

Каждый тип данных имеет свой диапазон значений и специальное зарезервированное слово для его описания. Например, значения 1 и 2 относятся к целочисленному типу, их можно складывать, умножать и выполнять над ними другие арифметические операции.

В языке Pascal для описания типа в общем случае используется зарезервированное слово type.

Формат:

type

<Имя типа> = <значения типа>;

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

Все типы данных можно разделить на две группы: скалярные и структурированные (составные). Скалярные типы, в свою очередь, делятся на стандартные и пользовательские.

Стандартные типы данных предлагаются пользователям разработчиками системы Turbo Pascal. К ним относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.

Пользовательские типы данных разрабатываются пользователями системы программирования Turbo Pascal.

 Постоянную величину иначе называют константой. Конечно, в программе можно использовать числа и строки непосредственно: 3.1415 или 'Это значение числа пи', но иногда удобнее присвоить их идентификатору. Описание констант аналогично описанию переменных, но используется ключевое словоconst, за именем идентификатора следует тип, затем знак равенства и его значение. Причём тип константы допускается не указывать:

const pi=3.1415 ;
         
ZnakPi : String = 'Это значение числа пи';

К слову, константа
 Pi встроенная в Delphi, то есть для того чтобы использовать в Delphi число 3,1415... в расчётах, нужно просто присвоить встроенную константу Pi переменной типа Real или просто использовать непосредственно в выражениях.

 Множество - это группа элементов, объединённая под одним именем, и с которой можно сравнивать другие величины, чтобы определить, принадлежат ли они этому множеству. Количество элементов в одном множестве не может превышать 256. Множество описывается так:

   
type имя_множества = set of диапазон_значений_множества ;

В качестве диапазона может указываться любой тип, количество элементов в котором не больше 256. Например:

   
type TMySet = set of  0 .. 255;
   
type TMySet = set of  Byte;

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

   
var MySet : TMySet;
   
begin
    MySet:=[1, 3 .. 7, 9];
   
end;

Чтобы проверить, является ли некое значение элементом множества, применяется оператор
 in в сочетании с условным оператором:

   
var Key : Char;
           
Str : String;
   
begin
    
if Key in ['0' .. '9', '+', '-'] then Str:='Math';
   
end;

   Чтобы добавить элемент во множество, используется операция сложения, удалить - вычитания:

var Digit: set of Char=['1'..'9'];
var Math: Set of Char;
begin
  Math:=Digit+['+', '-', DecimalSeparator*];
end;

Передача массивов в процедуры и функции

При создании функции или процедуры работы с массивами в ее объявление нельзя включать описание индексов.

Пример, объявление procedure MyProc(A: array[1..10] of Integer);

будет расценено как синтаксическая ошибка и вызовет соответствующее сообщение компилятора. Правильным будет объявление

type ta = array[1..10] of Integer; procedure MyProc(A: ta);

Функции и процедуры могут воспринимать в качестве параметров не только массивы фиксированного размера, но и так называемые открытые массивы, размер которых неизвестен. В этом случае в объявлении функции или процедуры они описываются как массивы базовых типов без указания их размерности.

Пример:

procedure SumArray(A:array of integer; var B: array of integer);

При таком определении передаваемый в функцию первый массив будет копироваться и с этой копией - массивом A, будет работать процедура. Второй открытый массив определен как var. Этот массив передается по ссылке, т.е. он не копируется, и процедура будет работать непосредственно с исходным массивом.

Массив, переданный как открытый, воспринимается в теле процедуры или функции как массив с целыми индексами, начинающимися с 0. Размер массива может быть определен функциями Length - число элементов и High - наибольшее значение индекса.

Очевидно, что всегда High = Length - 1.

При вызове функции или процедуры с параметром в виде открытого массива можно использовать в качестве аргумента конструктор открытого массива, который формирует массив непосредственно в операторе вызова. Список элементов такого конструктора массива заключается в квадратные скобки, а значения элементов разделяются запятыми. Например, функцию Sum, суммирующую элементы числового массива, можно вызвать следующим образом:

Sum([1.2,4.45,0.1]);

Пример:

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

procedure SumArray(A:array of integer; var B: array of integer);

var i:word;

begin

for i:=0 to High(A) do B[i]:=A[i]+B[i];

end;

Вызов этой процедуры может иметь вид:

var A1,A2: array [1..3] of integer;

begin

<операторы заполнения массивов>

SumArray(A1,A2);

end;



 

Другие похожие работы, которые могут вас заинтересовать.
2761. Пользовательские типы данных 25.88 KB
  Например бывает удобным совместить в одной переменной сразу ряд однотипных данных или же предусмотреть хранение данных разных типов например строк и чисел. К счастью в Object Pscl имеется возможность создавать собственные типы данных на основе уже имеющихся совмещая их или комбинируя. Например для создания упорядоченного списка однотипных данных используют массивы rrys а для объединения нескольких типов в один записи records.
7150. Ключевые элементы данных. Назначение и типы ключей. Типы отношений. Построение отношений 31.46 KB
  Отношения между таблицами Отношения между таблицами устанавливают связь между данными находящимися в разных таблицах базы данных. Отношения между таблицами базы данных BIBLIO. Отношения между таблицами базы данных BIBLIO.
2769. Перечисляемые типы данных 15.34 KB
  Type TDirection = North South Est West; На базе типа TDirection можно объявить переменную Direction и присвоить ей значение: Vr Direction: TDirection; begin Direction := North; end. На самом деле за идентификаторами значений перечисляемого типа стоят целочисленные константы. Соответствие между значениями перечисленного типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0 второе 1 и т.
5992. Основы работы с MathCAD. Математические выражения. Типы данных 494.07 KB
  Функции MthCD – это мощная и в то же время простая универсальная среда для решения задач в различных отраслях науки и техники финансов и экономики физики и астрономии математики и статистики MthCD остается единственной системой в которой описание решения математических задач задается с помощью привычных математических формул и знаков. MthCD позволяет выполнять как численные так и аналитические символьные вычисления имеет чрезвычайно удобный математикоориентированный интерфейс и прекрасные средства научной графики. Система MthCD...
10950. Количественные методы ситуационного анализа: опрос, панель, эксперимент. Общая характеристика методов опроса. Разработка форм сбора данных. Типы вопросов и шкал. Составление анкет 11.7 KB
  Опрос может быть: структуризированный когда все опрашиваемые отвечают на одни и те же вопросы неструктуризированный когда интервьюер задает вопросы в зависимости от полученных ответов. Достоинства: Стандартизация вопросов задаваемых всем респондентам с одинаковыми вариантами ответов на них. Формализованный опрос может быть реализован в различных формах: личная беседа интервью; телефонный опрос; рассылка анкет в виде почтовой или Интернет рассылки При формализованном интервью имеется конкретная схема проведения опроса обычно это...
7176. ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ 116.07 KB
  Например в качестве информационной системы можно рассматривать расписание движения поездов или книгу регистрации данных о заказах. Атрибут записанный на каком-либо носителе информации называют элементом данных полем данных или просто полем. При обработке данных часто встречаются однотипные объекты с одинаковыми свойствами.
8335. Аналоговая и дискретная информация. Носители данных. Операции с данными. Кодирование данных. Системы счисления. Энтропия и количество информации 227.54 KB
  Системы счисления. Системы счисления Кодирование данных используется издавна: код Морзе Брайля морской сигнальный алфавит и т. В истории человечества для кодировании чисел наиболее известны две системы счисления: непозиционная и позиционная. Как та так и другая системы счисления характеризуются основанием – количеством различных цифр используемых для записи чисел например от 0 до 9 т.
8334. Формулы Шеннона и Хартли. Расчёт количества информации. Кодирование символьных, графических и звуковых данных. Структуры данных Формула Шеннона 140.5 KB
  Для решения обратных задач, когда известна неопределенность (H) или полученное в результате ее снятия количество информации (I) и нужно определить какое количество равновероятных альтернатив соответствует возникновению этой неопределенности, используют обратную формулу Хартли, которая выводится в соответствии с определением логарифма и выглядит еще проще...
17888. Типы логики 25.95 KB
  Многие положения гипотезы и выводы логики далеко не так легко воспринимаются как скажем описания раннего утра или картинки из жизни народов. Целью работы является рассмотреть типы логики. Из цели можно выявить следующие задачи: - изучить историю появления логики; - рассмотреть индуктивную дедуктивную и диалектическую логики в экономической теории. Основная часть История возникновения логики В качестве самостоятельной науки логики была разработана более двух тысяч лет назад в IV в.
1748. Типы правопонимания 21.59 KB
  За время своего мноковекового существования юридическая наука сформировала различные образы права различные его концепции и толкования. Тип правопонимания – это определенный образ права характеризуемый совокупностью наиболее общих теоретических признаков права и наиболее общих признаков практического ценностного к нему отношения Иными словами это определенное направление в познании сущности и социального назначения права. В разных частях света в группах государств или отдельно взятой стране исторически складывалась своя система права...
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.