Классификация типов данных в Турбо Паскале
На Паскале структура типов имеет следующий вид:
В программе для каждого элемента данного должны быть известны имя и тип. В соответствии с этим определением компилятор выделяет память для каждого имени в соответствии с типом. Причем, память выделяется в том порядке, в котором переменные описаны в разделе описания. Например:
Var
a: byte; {занимает 1 байт}
b: integer; {занимает 2 байт}
c: Real; {занимает 6 байт}
a b c
Направление возрастания адресов байтов памяти |
Типы данных, как уже говорилось, бывают стандартные и нестандартные.
С одной сторонынестандартные типы обычно записываются в секции описания типов в следующей форме:
Type
имя = определение типа;
Type
M = record
a, b: byte:
end;
С другой стороны можно, как говорят, сконструировать (объявить) тип переменной прямо в секции описания переменных по следующему шаблону:
Var
имя1: описание нестандартного типа;
имя2: тип;
Например:
Var
v1: array [1..10] of char;
v2: byte;
Переменная v1 относится к тому типу, который вы определили при объявлении переменной, v2 - стандартный тип (но v1 не будет совместим никакой другой тип).
Константы объявляются в секции описания констант следующим образом:
Const
N = 2; целого типа
C = 'c'; символьного типа
D = 1.28; вещественный тип
E = $AD; целого типа
F = 'abcd'; строкового типа
В отличие от описания переменных, при описании констант тип явно не указывается, но он легко угадывается, исходя из формы записи констант (для простых констант).
В Паскале есть так называемые типизированные константы, для которых обязательно указывается тип. Форма их записи следующая:
Const
N: byte = 2;
C: char = 'c';
Хотя типизированные константы описываются в секции описания констант, они не являются на самом деле константами: значение типизированных констант, в отличие от простых констант, вы можете менять в программе сколько угодно раз. По своей сути типизированные константы - это переменные с заданные начальными значениями,причем начальные значения присваиваются еще на стадии компиляции.
Обычные константы используются для того, чтобы сделать программу более читаемой и легче модифицируемой. Это достигается за счет того, что в программе вместо значений вы используете осмысленные имена.
Порядковые типы
6.4.1 Понятие порядкового типа
Порядковый тип описывает конечное и упорядоченное множество значений, для каждого элемента которого однозначно определяется предыдущий и следующий за ним элементы. В частности, последовательность целых чисел является порядковым типом данных. Например, для элемента 5 существует единственное следующее значение (6) и единственное предыдущее значение (4). Символы алфавита также представляют собой порядковый тип данных. Например, в латинском алфавите для символа "M" следующим является символ "N", а предыдущим - символ "L".В то же время вещественные числа нельзя отнести к порядковому типу. Например, для числа 15.8 существует бесконечное множество следующих и предыдущих значений (15.81, 15.801, 15.8001 и т.д.).
Упорядоченное множество значений переменной порядкового типа однозначно отображается на последовательность порядковых номеров 0,1,2, .... Исключение сделано только для целых чисел, которые отображаются сами на себя.
Каждый порядковый тип имеет минимальное (функция low) и максимальное значение (функция high). Для всех значений, кроме минимального, существует предшествующее значение; для всех значений, кроме максимального, существует последующее значение.
К любому порядковому типу применимы следующие три стандартные в Паскале функции: ORD(X), PRED(X), SUCC(X):
- ORD(X) в точку вызова функция возвращает порядковый (ординальный) номер значения Х среди множества значений данного порядкового типа. Всегда возвращает значение целого типа.
- PRED(X) (predecessed - предшествующий) возвращает в точку вызова значение, предшествующее в данном порядковом типе значению Х. Возвращает значение того же типа, что и тип аргумента.
- SUCC(X) (succeed - следующий) возвращает в точку вызова значение, следующее в данном порядковом типе за значением Х. Возвращает значение того же типа, что и тип аргумента.
Для всех ординальных типов существуют операции отношения = <> < <= > >=. При этом предполагается, что оба операнда в операции отношения имеют одинаковый тип. Значение (результат) отношения определяется с помощью порядковых номеров, присущих операндам.
Дата добавления: 2016-05-28; просмотров: 1738;