Тема: Переменные в Lazarus.
Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена (идентификаторы). Все данные в программе должны быть описаны до их первого использования. И компилятор следит, чтобы в программе они использовались в соответствии с этим описанием, что позволяет избежать ошибок.
Любая величина может быть постоянной или переменной. Её имя (идентификатор) может состоять из комбинации латинских букв, цифр и знака подчёркивания, и начинаться не с цифры. При этом регистр символов значения не имеет.
Место описания данных в программе - вне логических блоков begin / end (перед блоком begin).
Команда объявления переменных выглядит следующим образом:
var имя_переменной : тип_переменной;
Слово var - ключевое. Если нужно описать несколько переменных одного типа, то их перечисляют, отделяя запятой:
var A, B, C: Integer;
Если несколько описаний следуют друг за другом, то ключевое слово var повторно можно не указывать:
var
A, B: Integer;
C, D: String;
Типы данных. Это строки и числа.
Строкой называется последовательность символов, заключённая в одиночные кавычки:
'это текстовая строка'. Если текст должен содержать сам символ кавычки, то его надо повторить дважды.
Самый популярный строковый тип - String. Строка типа String может содержать переменное количество символов объёмом до 2 Гбайт. Если нужно ограничить размер строки фиксированным значением, то после ключевого слова String в квадратных скобках указывается число, определяющее количество символов в строке: String[50].
Числа бывают целые и дробные.
В таблице перечислены стандартные типы целых чисел и соответствующие им дипазоны допустимых значений.
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 в соответствующей степени: 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
Наиболее удобным для использования в программах является тип Real. Ему эквивилентен тип Double, но в будущем это может быть изменено. Вычисления с дробными числами выполняются приближённо, за исключением типа Currency(финансовый), который предназначен для минимизации ошибок округления в бухгалтерских расчётах.
Следующим типом данных является логический Boolean, состоящий всего из двух значений: True(Истина) и False (Ложь). При этом True > False.
Теперь, используя компоненты, их свойства и события, вводя собственные переменные, можно конструировать программы, содержащие вычисления. Осталось узнать, как вычисленное значение вывести на экран.
var
A, B, C: Integer;
begin
A := 5;
B := 15;
C := A+B;
Label1.Caption := C;
end;
вызовет ошибку, так как свойство Caption имеет текстовый тип String, а использованные переменные - цифровой тип Integer. Значит, нужно преобразовать значение переменной C в текстовый тип. Для этого есть встроенная функция IntToStr. Строка в нашей "программе", вызывавшая ошибку, должна выглядеть так:
Label1.Caption:= IntToStr(C);
Такая программа, кроме показа числа 20, ни на что не способна. Поэтому научимся вводить в программу другие числа. Для этого будем использовать компонент Edit. Расположим на форме два компонента Edit, один компонент Label и кнопку Button, по нажатию на которую и будем проводить вычисления. В компоненты Edit1 и Edit2 будем вводить числа для суммирования. Далее на кнопку Button запишем следующую программу:
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;
При попытке исполнить этот код Lazarus покажет ошибки по аналогичной причине - переменные 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 плавающей запятой, имеющих тип Real. Для преобразования в строку - FloatToStr, обратно -StrToFloat.