Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена (идентификаторы). Все данные в программе на языке 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
Наиболее удобным для использования в программах является тип Delphi Integer. Другие целые типы используются для
уменьшения места, занимаемого данными в памяти компьютера.
Дробные числа имеют дробную часть, отделяемую десятичной точкой. Допускается использование символа 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
Наиболее удобным для использования в программах является тип Delphi Real. Ему эквивилентен тип Double, но в
будущем это может быть изменено. Вычисления с дробными числами выполняются приближённо, за исключением типа Currency (финансовый), который
предназначен для минимизации ошибок округления в бухгалтерских расчётах.
Следующим типом данных является логический 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 использовались для наглядности. Можно обойтись одной строчкой:
Аналогично, имеются функции и для преобразования в строку и обратно действительных чисел c плавающей (Floating англ.) запятой, имеющих тип
Real. Для преобразования в строку - FloatToStr, обратно - StrToFloat.