logo
Программирование в среде Delphy / Программирование в среде Delphi

4.4. Основные типы переменных

Переменные целого типа

Целые числа в основном используются для нумерации и индексации различных данных. Они не могут иметь дробей и, например, при целочисленном делении 3 на 2 результатом будет целое число 1. Перечислим эти типы:

1) Byte. Целое число данного типа занимает в памяти ЭВМ 1 байт, и оно всегда положительно, т.е. его значения лежат в диапазоне от 0 до 255. Переменные этого типа можно объявить в разделе переменных следующим образом: Var a, b1, Q32e:Byte; Здесь объявлены три переменные типа Byte. Переменные отделяются друг от друга запятыми, а тип отделяется от списка переменных двоеточием;

2) ShortInt, или короткое целое. Число данного типа занимает в памяти тоже один байт, но старший двоичный разряд отведен для знака числа. 0 соответствует положительному числу, 1 – отрицательному числу. Диапазон значений от -128 до 127. Интересно отметить, что отрицательные целые числа хранятся в виде дополнения к положительному числу. Например, положительное число 14(10)=00001110(2)=0E(16), а отрицательное число -14(1) будет выглядеть следующим образом: 100000000 - 00001110 11110010(2)= -14(10)= F2(16). Это позволяет ЭВМ не выполнять операцию вычитания целых чисел. В любом случае целые числа всегда складываются, а результат всегда будет правильным за счет особого способа хранения отрицательных чисел;

3) Word. Целое положительное число данного типа занимает в памяти ЭВМ 2 байта и может принимать значения в диапазоне от 0 до 65535;

4) SmallInt. Целое число данного типа занимает в памяти ЭВМ 2 байта и может принимать значения в диапазоне от -32768 до 32767;

5) Integer или LongInt. В первых версиях Delphi тип Integer занимал 2 байта, но начиная с Delphi–4 переменные этого типа занимают в памяти 4 байта, так же как и тип LongInt. Диапазон значений целых чисел лежит в интервале от -2 147 483 648 до 2 147 483 647;

6) LongWord или Cardinal. Целое положительное число данного типа занимает в памяти ЭВМ 4 байта и может принимать значения в диапазоне от 0 до 4 294 967 295;

7) Int64. Целое число данного типа занимает в памяти ЭВМ 8 байта и может принимать значения в диапазоне от -263 до 263-1.

Переменные вещественного типа

Вещественные числа – это числа, которые могут иметь дробную часть числа. Вешественные типы:

1) Single. Переменные этого типа занимают в памяти 4 байта. Диапазон представления чисел лежит в интервале от 1.5⋅10-45 до 3.4⋅1038. Точность представления таких чисел достигает 6 десятичных разрядов;

2) Real48. Ранее этот тип назывался просто Real и использовался на компьютерах, в которых отсутствовал математический сопроцессор. Переменные этого типа занимают в памяти 6 байт. Диапазон представления чисел лежит в интервале от 2,9⋅10-39 до 1,7⋅1038. Точность представления таких чисел достигает 10 десятичных разрядов. Переменные данного типа лучше не использовать в программе, так как математический сопроцессор не работает с таким представлением чисел и компилятор автоматически переводит их в тип Extended;

3) Double или Real. Переменные этого типа занимают в памяти 8 байт. Диапазон представления чисел лежит в интервале от 5,0⋅10–324 до 1,7⋅10308. Точность представления таких чисел достигает 16 десятичных разрядов;

4) Extended. Это основной вещественный тип, математический сопроцессор всегда работает с числами, представленными в этом типе. Переменные этого типа занимают в памяти 10 байт. Диапазон представления чисел лежит в интервале от 3,6⋅10–4951 до 1,1⋅104932. Точность представления таких чисел достигает 22 десятичных разрядов;

5) Comp. Это устаревший тип на 8 байт для работы с целыми числами, однако они воспринимаются как вещественные. Лучше вместо этого типа использовать тип Int64;

6) Тип Currency. Этот тип используется для работы с денежными значениями. Переменные этого типа в памяти занимают 8 байт. Это тип данных с фиксированной точкой, последние четыре десятичных разряда отведены для дробей или в денежном выражении – копеек и сотых долей копеек. Диапазон представления чисел лежит в интервале от – 922337203685477,5808 до 922337203685477,5807.

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

Язык Delphi поддерживает два символьных типа – Ansichar и Widechar.

Тип Ansichar – это символы в кодировке ANSI, которым соответствуют числа в диапазоне от 0 до 255; тип Widechar – это символы в кодировке Unicode, им соответствуют числа от 0 до 65 535.

Delphi поддерживает и наиболее универсальный символьный тип – Char, который эквивалентен Ansichar.

Строковый тип

Строковые переменные могут быть следующих типов:

ShortString – короткая строка с числом символов до 255,

AnsiString – длинная строка с числом символов до 231-1,

WideString – длинная строка с числом символов до 230 и кодировкой UniCode, когда каждому коду символа выделяется по 2 байта.

Можно также использовать тип String. Он по умолчанию соответствует типу AnsiString, если явно не указана максимальная длина строки. В опциях транслятора ему в соответствие можно также поставить тип AnsiString.

Перечисляемый тип

Перечисляемый тип определяется как последовательность идентификаторов, которые не должны совпадать ни с какими другими именами переменных и зарезервированными словами Delphi. Он определяется в разделе типов. Например:

Type Tfio=(Иванов, Петров, Сидоров);

В программе в разделе переменных, допустим, определим переменную

Var Fio:TFio;

В разделе действий программы можно тогда записать:

Fio:=Петров;

Тип диапазона значений

Тип диапазона значений представляет собой подмножество значений простых типов, при этом начальное и конечное значения разделяются двумя точками. Например, Type Tlat=A..z; включает в себя подмножество всех латинских букв.

Логический тип

Существуют четыре логических типа: Boolean, ByteBool, WordBool, and LongBool. Переменные этих типов могут принимать только два логических значения: True – истина и False – ложь. Значению False соответствует нулевые значения полей этих переменных, а значению True – любые ненулевык значения.