Программа на Delphi

Максимально допустимый диапазон значений определяется их типом.

Примеры:

0 9877 -56 $F1 ( то же, что 241)

Над целыми значениями можно выполнять четыре обыкновенных арифметических действия: сложение (+), вычитание (-), умножение (*), деление (/) и два дополнительных действия: деление нацело (div) и взятие остатка от деления (mod). При выполнении деления результатом будет вещественное значение, во всех остальных операциях – целое.

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

Эта группа типов охватывает вещественные значения.

Вещественные типы не могут быть использованы:

  • в качестве индексов массивов;
  • в операторах For и Case;
  • в качестве базисного типа при определении множеств;
  • при определении подтипов.

При описании вместо Real48 можно указывать Real.

Ниже в табл. 2 приведен список типов и их характеристики.

Таблица 2

Тип

Диапазон значений

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

Размер памяти

1.

2.

3.

4.

5.

6.

Real48

Single

Double

Extended

Comp

Currency

2.9 x 10^–39 . 1.7 x 10^38

1.5 x 10^–45 . 3.4 x 10^38

5.0 x 10^–324 . 1.7 x 10^30

3.6 x 10^–4951 . 1.1 x 10^4932

-2^63+1 . 2^63 -1

-922337203685477.5808 . 922337203685477.5807

11 – 12

7 – 8

15 – 16

19 – 20

19 – 20

19 – 20

6 байтов

4 байта

8 байтов

10 байтов

8 байтов

8 байтов

Примеры:

Var

rA, rA_Par: Real; T: Integer;

Вещественные значения можно изобразить:

  • в форме с фиксированной десятичной точкой;
  • в форме с плавающей десятичной точкой.

Первая форма представления вещественного значения представляет привычное число, в котором целая и дробная части разделены десятичной точкой, например

12.455 -988.45 -8.0

Вторая форма предназначена для записи очень больших или очень маленьких по абсолютной величине значений, когда их представление в форме с фиксированной точкой затруднительно или невозможно. Такое значение изображают в виде

<значение с фиксированной точкой > E <порядок>

Примеры:

-45.2E6 ( то же, что -45,2 106) 5.245E-12 ( то же, что 5,24 10-12)

Порядок таких чисел должен быть всегда целым числом.

3.3. Логический (булевский) тип

Логические переменные имеют тип boolean. Такая переменная занимает один байт памяти и может иметь одно из двух возможных значений – True (истина) или False (ложь).

Примеры:

Var b : boolean; b1, Ti : boolean;

3.4. Символьный тип

Типы AnsiChar и WideChar описывают множество отдельных символов языка, включая буквы русского алфавита. AnsiChar описывает множество из 256 ASCII-кодов и занимает один байт памяти, WideChar описывает мно-жество Unicode – универсальное множество кодов и занимает два байта памя-ти. Тип AnsiChar эквивалентен базовому типу Char прежних версий языка.

Примеры:

Var Ch, k : AnsiChar; Char_Massivr: array[1 100] of Char;

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

'h' 'X' '#' '$' ''''

3.5. Строковые типы

Этот тип во многом схож с типом Array of Char, т. е. массивом символов. Отличие состоит в том, что переменная этого типа может иметь динамическое количество символов (от нуля до верхней границы), в то время как массив символов всегда статичен и имеет одинаковое количество символов.

Таблица 3

Тип

Длина строки

Занимаемая память

1.

2.

3.

ShortString

AnsiString

WideString

0 – 256 символов

0 – 2 Гб символов

0 – 2 Гб символов

(Кол-во символов) х 1 байт

(Кол-во символов) х 1 байт

(Кол-во символов) х 2 байта

Максимальная длина строковой переменной должна быть указана явно. Размер строки на единицу больше ее объявленной длины, т. к. в ее нулевом байте содержится фактическая длина строки. Длину в нулевом байте можно принудительно менять.

Особо следует выделить тип String. Если длина String-строки не объявлена, то при действии директивы компилятора {$H+} или без ее указания такое объявление равносильно AnsiStrig. Если установлена директива {$H-}, то тип String равносилен типу ShortString.

Строковое значение изображают в виде последовательности символов, заключенной в апострофы. Пустую строку изображают двойным апострофом.

Примеры значений строковых типов:

'Иванов И.И.' '' 'Газета"ИЗВЕСТИЯ"' 'Строка символов'

Примеры описания переменных строковых типов:

Var s1, s2 : ShortString [12]; st1, st2 : AnsiString [580]; ChMassiv: array [1 15] of String;

3.6. Строковый тип PChar

Для связи с функциями Windows в язык Object Pascal введен новый тип строк – PChar-строки с завершающим нулем. В обычной и привычной для прежних версий языка String-строке нулевой байт отведен для хранения реального количества символов этой строки, а сами символы последовательно располагаются начиная с первого байта. В PChar-строке, наоборот, символы располагаются начиная с нулевого байта, а их последовательность заканчивается завершающим нулем.

Строки PChar можно объявлять как обычные символьные массивы. Например, строку длины 3000 плюс один байт, зарезервированный под завершающий нуль, можно определить следующим образом:

Var s: array[1 3000] of Char;

П р и м е ч а н и е. Без необходимости не используйте PChar-строки. Строковые String-типы и функции для обработки таких строк хорошо отлажены, они легче в использовании, и, как правило, надежнее PChar-строк.

3.7. Динамические PString-строки

Этот тип строк так же, как PChar, введен в язык для обращения к функциям Windows. Подробнее PString-строки описаны далее.

3.8. Перечислимые типы

Этот тип переменных может быть сформирован самим пользователем. Он создается простым перечислением возможных значений переменной.

Примеры перечислимых типов:

Type MaleNames = (Ivan, Peter, Serge); SwithOpts = (On, Off); SostTypes = (Active, Passive, Waiting); Sides = (Left, Right, Top, Down);


Страница: