Программа на DelphiРефераты >> Программирование и компьютеры >> Программа на 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);