Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

2.8.6. Ограниченный тип (диапазон)

Через диапазон можно определить тип, который будет содержать зна­чения только из ограниченного поддиапазона некоторого базового типа. Базовым типом может быть любой целочисленный тип, тип CHAR или любой из введенных программистом перечислимых типов. Определяется тип-диапазон в разделе TYPE указанием имени типа и границ диапазона, разделенных двумя точками:

TYPE <ИмяДиапазона>=<НачальноеЗначение>..<КонечноеЗначение>;

Начальное значение при определении такого типа не должно быть больше конечного.

Пример: TYPE

TEST1=(test1,test2,...,test5);

H=1..20; {поддиапазон для типа Integer}

LETERS='A'..'Я'; {базовый тип Char}

TESTOD=test2..test5; {базовый тип TEST}

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

При конструировании диапазона в описании типа можно использовать несложные арифметические выражения для вычисления границ. Но при этом надо следить, чтобы запись выражения не начиналась со скобки (скобка  это признак начала перечисления).

Пример:

CONST

N=30;

TYPE

date=1..31;

kv2=3*N+1..6*N;

VAR

L,L1:date;

k: kv2;

BEGIN

L:=2*10+5; ...

L1:=2*10+60; {неверно, т.к. L1 выходит за пределы диапазона}

END.

Применение ограниченных типов усиливает контроль данных при вы­полнении программы. Значения переменных типа «диапазон» могут выводить­ся на экран и вводится с клавиатуры только в том случае, когда диапа­зон взят из базового стандартного типа.

2.8.7. Вещественные типы

В отличие от порядковых типов значения вещественных типов опреде­ляют число лишь с некоторой точностью, зависящей от внутреннего форма­та числа. Вещественное число в памяти ПК представляется в экспоненци­альной форме и состоит из знака, мантиссы и порядка числа. Десятичная точка подразумевается перед левым (старшим) разрядом мантиссы (такая мантисса называется нормализованной). При выполнении операций десятичная точка сдвигается путем выполнения умножения мантиссы на E (экспоненту) с порядком:

<Знак><Мантисса>Е<Порядок> или <Знак><Мантисса>*10<Порядок>.

В зависимости от числа разрядов, отводимых под мантиссу и поря­док, в ТП различают следующие вещественные типы (табл.5).

Все типы, кроме REAL, могут использоваться только при особых ре­жимах компиляции среды или подключенном сопроцессоре. Подключение соп­роцессора производится до выполнения программы указанием ключа $N+; отключает сопроцессор ключ $N-. Арифметический сопроцессор всегда обрабатывает числа в формате EXTENDED, другие типы получаются усечени­ем результатов до нужных размеров.

Таблица 5

Вещественные типы

Длина,

байт

Название типа

Значащие цифры мантиссы

Диапазон десятич­ного порядка

4

6

8

10

8

SINGLЕ

REAL

DOUBLE EXTENDED

COMP

7..8

11..12

15..16

19..20

19..20

-45..+38

-39..+38

-324..+308

-4951..+4932

-2E63+1..2E63-1

Тип COMP трактуется как "большое" целое число со знаком. В то же время в выражениях он полностью совместим с другими вещественными ти­пами и порядковым не считается. Для работы с вещественными типами определены встроенные функ­ции: sin, cos, arctаn, ln, exp, sqr, abs, sqrt, а также функции табл.6.

Операции +,-,*,/ дают вещественный результат, если хотя бы один из аpгументов вещественный.

Таблица 6