Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена
(идентификаторы). Все данные в программе на языке 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
Дробные числа имеют дробную часть, отделяемую десятичной точкой. Допускается
использование символа e (или E), за которым следует число, указывающее, что
левую часть нужно умножить на 10 в соответствующей степени: 5e25 - пять умножить
на десять в двадцать пятой степени.
Ниже приведены стандартные типы дробных чисел и соответствующие им диапазоны
допустимых значений. Для большинства типов указан диапазон положительных
значений, однако допустимым является аналогичный диапазон отрицательных
значений, а также число 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
Следующим типом данных
является логический Boolean, состоящий всего из двух значений: True (Истина) и
False (Ложь). При этом True > False.
Теперь, используя компоненты, их свойства и события, вводя собственные
переменные, можно конструировать программы, содержащие вычисления. Осталось
узнать, как вычисленное значение вывести на экран.
Про консольные программы я здесь не говорю! А в нормальных оконных
Windows-приложениях это значение нужно поместить в какой-нибудь компонент,
имеющий свойства Text или Caption. Это, например, такие компоненты как Label и
Edit, да и сама Форма имеет свойство Caption, куда тоже можно выводить
информацию. Однако, в Delphi информацию перед выводом, как правило, необходимо
преобразовывать. Так как присвоение возможно только между переменными одного
типа, то такая программа (не пытайтесь её исполнять):
var A, B, C: Integer ;
begin
A := 5 ;
B := 10 ;
C := A+B ;
Label1.Caption := C ;
end ;
вызовет ошибку, так как свойство Caption имеет текстовый тип String, а
использованные переменные - цифровой тип Integer. Значит, нужно преобразовать
значение переменной C в текстовый тип. Для этого есть встроенная функция
IntToStr. Строка в нашей "программе", вызывавшая ошибку, должна выглядеть так:
Label1.Caption := IntToStr(C) ;
Такая программа, кроме показа числа 15, ни на что не способна. Мы должны
научиться вводить в программу другие числа. Используем компоненты Edit.
Введённые числа будут содержаться в свойстве Text этих компонентов. Расположим
на форме два компонента Edit, один компонент Label и кнопку Button, по нажатию
на которую и будем проводить вычисления. В компоненты Edit1 и Edit2 будем
вводить числа для суммирования. Чтобы переместиться в редактор кода, щёлкнем
дважды по нашей кнопке Button1. Мы попадём прямо в сформированную для нас средой
Delphi заготовку обработчика нажатия на кнопку, непосредственно между
операторами begin и end. Напишем такой простой код:
procedure TForm1.Button1Click(Sender: TObject);
var A, B, C: Integer;//Не забудьте описание переменных
begin
//Начало кода:
A := Edit1.Text;
B := Edit2.Text;
C := A+B;
Label1.Caption := IntToStr(C);
//Конец кода
end ;
При попытке исполнить этот код Delphi покажет ошибки по аналогичной причине -
переменные 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.