Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена (идентификаторы). Все данные в программе на языке Delphi должны быть описаны до их первого использования. И компилятор следит, чтобы в программе они использовались в соответствии с этим описанием, что позволяет избежать ошибок.
Любая величина в Delphi может быть постоянной или переменной. Её имя (идентификатор) может состоять из комбинации латинских букв, цифр и знака подчёркивания, и начинаться не с цифры. При этом регистр символов значения не имеет.
Место описания данных в программе - вне логических блоков begin / end. В модуле перед ключевым словом implementation есть блок описания:
var
Form1: TForm1;
Именно здесь, начиная со следующей строки, удобно объявлять глобальные переменные и константы. Как видим, одна (Form1) уже есть!
Команда объявления переменных в языке Delphi:
var имя_переменной : тип_переменной ;
Слово var - ключевое. Именем может быть любой идентификатор, если он не был описан ранее и не является одним из ключевых или зарезервированных слов языка Delphi. Если нужно описать несколько переменных одного типа, то их перечисляют, отделяя запятой:
var A, B, C : Integer;
Если несколько описаний следуют друг за другом, то ключевое слово var повторно можно не указывать:
var A, B : Integer;
C, D : String;
Постоянную величину иначе называют константой. Конечно, в программе можно использовать числа и строки непосредственно: 3.1415 или 'Это значение числа пи', но иногда удобнее присвоить их идентификатору. Описание констант аналогично описанию переменных, но используется ключевое слово const, за именем идентификатора следует тип, затем знак равенства и его значение. Причём тип константы допускается не указывать:
const pi=3.1415 ;
ZnakPi : String = 'Это значение числа пи';
К слову, константа Pi встроенная в Delphi, то есть для того чтобы использовать в Delphi число 3,1415... в расчётах, нужно просто присвоить встроенную константу Pi переменной типа Real или просто использовать непосредственно в выражениях.
Теперь пришло время узнать о типах данных, используемых в Delphi. Прежде всего это это строки и числа.
Строкой называется последовательность символов, заключённая в одиночные кавычки:
'это текстовая строка' Если текст должен содержать сам символ кавычки, то его надо повторить дважды:
'это '' - символ одиночной кавычки' Строка может быть и пустой, не содержащей символов. Тогда она состоит из двух идущих друг за другом без пробела кавычек. Естественно, строка может состоять и только из одних пробелов.
Самый популярный строковый тип -
String. Строка типа
String может содержать переменное количество символов объёмом до 2 Гбайт. Если нужно ограничить размер строки фиксированным значением, то после ключевого слова
String в квадратных скобках указывается число, определяющее количество символов в строке:
String[50]. Более полно
работа со строками Delphi описывается далее.
Одиночный символ имеет тип
Char и записывается в виде знака в одиночных кавычках:
'a'. Есть символы, которые на экране отобразить невозможно, например, символ конца строки (равен #13), символ переноса строки (равен #10). Такие символы записываются в виде их числового кода (в кодировке
ANSI), перед которым стоит знак
#. Например,
#0.
Наконец, существуют так называемые нуль-терминированные строки. Отсчёт символов в таких строках начинается с нуля, а заканчивается символом с кодом
0 (
#0). Такие строки имеют тип
PChar.
Числа бывают
целые и
дробные.
В следующей таблице перечислены стандартные типы целых чисел и соответствующие им дипазоны допустимых значений.
| Integer |
-2147483648 .. +2147483647 |
| Cardinal |
0 .. 4294967295 |
| Shortint |
-128 .. +127 |
| Smallint |
-32768 .. +32767 |
| Int64 |
-263 .. +263-1 |
| Byte |
0 .. +255 |
| Word |
0 .. +65535 |
|
Наиболее удобным для использования в программах является тип Integer. Другие целые типы используются для уменьшения места, занимаемого данными в памяти компьютера. |
Дробные числа имеют дробную часть, отделяемую десятичной точкой. Допускается использование символа
e (или
E), за которым следует число, указывающее, что левую часть нужно умножить на 10 в соответствующей степени.
Ниже приведены стандартные типы дробных чисел и соответствующие им диапазоны допустимых значений. Для большинства типов указан диапазон положительных значений, однако допустимым является аналогичный диапазон отрицательных значений, а также число
0.
| Real |
5*10-324 .. 1.7*10308 |
| Real48 |
2.9*10-39 .. 1.7*1038 |
| Singl |
1.5*10-45 .. 3.4*1038 |
| Double |
5*10-324 .. 1.7*10308 |
| Extended |
3.6*10-4951 .. 1.1*104932-1 |
| Comp |
-263 .. +263-1 |
| Currency |
922337203685477.5807 |
|
Наиболее удобным для использования в программах является тип Real. Ему эквивилентен тип Double, но в будущем это может быть изменено. Вычисления с дробными числами выполняются приближённо, за исключением типа Currency (финансовый), который предназначен для минимизации ошибок округления в бухгалтерских расчётах. |
Следующим типом данных является логический
Boolean, состоящий всего из двух значений:
True (Истина) и
False (Ложь). При этом
True > False.
Теперь, используя компоненты, их свойства и события, вводя собственные переменные, можно конструировать программы, содержащие вычисления. Осталось узнать, как вычисленное значение вывести на экран. Для этого это значение нужно поместить в какой-нибудь компонент, имеющий свойства
Text или
Caption. Это, например, такие компоненты как
Label и
Edit, да и сама Форма имеет свойство
Caption, куда тоже можно выводить информацию. Но такая программа:
var A, B, C: Integer ;
begin
A := 5 ;
B := 10 ;
C := A+B ;
Label1.Caption := C ;
end ; вызовет ошибку, так как свойства
Text и
Caption имеют текстовый
тип String, а использованные переменные - цифровой
тип Integer. Значит, нужно преобразовать значение переменной
C в текстовый тип. Для этого есть встроенная функция
IntToStr. Строка в нашей "программе", вызывавшая ошибку, должна выглядеть так:
Label1.Caption := IntToStr(C) ; Такая программа, кроме показа числа
15, ни на что не способна. Мы должны научиться вводить в программу другие числа. Используем компоненты
Edit. Введённые числа будут содержаться в свойстве
Text этих компонентов. Расположим на форме два компонента
Edit, один компонент
Label и кнопку
Button, по нажатию на которую и будем проводить вычисления. В компоненты
Edit1 и
Edit2 будем вводить числа для суммирования. Но программа:
var A, B, C: Integer;
begin
A := Edit1.Text;
B := Edit2.Text;
C := A+B;
Label1.Caption := IntToStr(C);
end ; вызовет ошибки по аналогичной причине - переменные
A и
B имеют цифровой
тип Integer, а свойство
Text - текстовый
тип String. Исправить ошибки поможет встроенная функция
StrToInt, выполняющая обратное преобразование - текст в целое число. Операторы присвоения переменным
A и
B должны выглядеть так:
A := StrToInt(Edit1.Text); B := StrToInt(Edit2.Text); В данном случае переменные
A, B, C использовались для наглядности. Можно обойтись одной строчкой:
Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text)); Аналогично, имеются функции и для преобразования в строку и обратно действительных чисел c плавающей (
Floating англ.) запятой, имеющих тип
Real. Для преобразования в строку -
FloatToStr, обратно -
StrToFloat.
Часто результаты вычислений, имеющие тип Delphi
Real, имеют после запятой длинный "хвост" цифр. При выводе такой переменной в текстовом виде необходимо ограничить количество цифр после запятой. Как это можно сделать, описывается также в Уроке Delphi
Работа со строками Delphi.
Источник: delphi-manual.ru