Типы данных в Delphi

Типы данных в Delphi

В языке программирования Delphi всё должно иметь свой тип. Таким образом, объявляя переменную, мы должны обязательно указывать, какой тип данных она будет в себе хранить.

Можно выделить 5 основных типа данных в Delphi:

  1. Целые числа
  2. Вещественные числа (дробные)
  3. Строки
  4. Символьный тип данных
  5. Булевы значения

Переменные в Delphi указываются после ключевого слова var. Например:

var
i:integer;

говорит о том, что мы объявили переменную i. Тип переменной – целое число.

Целочисленные типы данных

В переменных целого типа информация предоставляется в виде чисел без дробной части.

Есть несколько типов целочисленных переменных. Они отличаются только объёмом памяти, которая выделяется переменной для хранения данных.

Целочисленным переменным можно присваивать как десятичные числа, так и шестнадцатеричные. Для этого перед шестнадцатеричным числом нужно поставить знак доллара – $.

Давайте на реальном примере рассмотрим присвоение переменной десятичного и шестнадцатеричного числа 10.

Пример присвоения переменной целочисленного типа данных

var
i,n:Integer; // объявляем две переменные для хранения целочисленных типов данных
begin
i:=10; // присваиваем переменной i десятичное число 10
n:=$A; // присваиваем переменной n шестнадцатеричное число 10
ShowMessage(IntToStr(i)); // Выводим на экран сообщение с значением переменной i
ShowMessage(IntToStr(n)); // Выводим на экран сообщение с значением переменной n
end;

Вещественные (дробные) типы данных

Вещественные или дробные типы данных предназначены для хранения чисел с плавающей точкой. Некоторые считают, что лучше использовать именно такие типы данных вместо целочисленных. Но это заблуждение. Потому что операции с плавающей точкой отнимают у процессора больше времени и требуют больше памяти. Поэтому, я рекомендую использовать переменные этого типа только в тех случаях, когда это действительно необходимо.

Очень важно помнить, что вещественные числа не равны целым.

Например, вещественное число 3.0 не будет равно целому числу 3. Для того чтобы сравнить оба этих числа, нужно округлить вещественное число.

Всё дело в том, что в компьютере число 3 в вещественном виде может оказаться числом 3.00000000001 или 2.999999999.

Пример присвоения переменной вещественного типа данных

var
i:Integer; // объявляем переменную для хранения целочисленных типов данных
n:Real; // объявляем переменную для хранения вещественных типов данных
begin
i:=10; // присваиваем переменной i целое значение 10
n:=10.5; // присваиваем переменной i дробное значение 10.5
ShowMessage(IntToStr(i)); // Выводим на экран сообщение с значением переменной i
ShowMessage(FloatToStr(n)); // Выводим на экран сообщение с значением переменной n
end;

Строковые типы данных

В Delphi используют следующие типы строк: ShortString, AnsiString, WideString. Также очень часто используют тип String.

Строки в Delphi заключаются в одинарные кавычки.

Например, чтобы объявить переменную str типа строка и присвоить ей значение Hello World, нужно написать следующий код:

var
str:String; // объявляем переменную типа строка
begin
str:='Hello World'; // присваиваем переменной str значение Hello World
ShowMessage(str); // Выводим на экран сообщение с значением переменной str
end;

Поскольку строка — это массив символов, то мы можем получить доступ к отдельному символу строки. Для этого нужно после имени переменной, в квадратных скобках, указать номер символа, который нас интересует.

Буквы в строках нумеруются начиная с 1 (а не с 0, как обычно происходит нумерация в других массивах). Это исключение обязательно нужно запомнить!

Давайте рассмотрим простой пример работы с отдельными символами строки.

var
str:String; // объявляем переменную типа строка
begin
str:='Hello World'; // присваиваем переменной str значение Hello World
ShowMessage(str[1]); // Выводим на экран первый символ переменной str
end;

Так как строка – это набор символов, а символ – это число, указывающее на конкретный символ в таблице, мы можем создавать строки из чисел.

Например, если мы хотим присвоить переменной str строку 'Hello World' с помощью числовых значений символов, то используя таблицу символов ASCII нужно написать следующий код:

var
str:String; // объявляем переменную типа строка
begin
str:=#72+#101+#108+#108+#111+#32+#87+#111+#114+#108+#100; // присваиваем переменной str значение Hello World с помощью числового значения символов
ShowMessage(str); // Выводим на экран значение переменной str
end;

Обратите внимание на то, что перед числовым значением обязательно нужно указывать знак решетки.

Символьные типы данных

Символьные данные — это простая цепочка из чисел. Мы уже познакомились с использованием символьных данных при написании слова Hello World с помощью числового значения символов.

То есть, есть каждое число в таблице символов определяет порядковый номер символа. Используя таблицу символов ANSI, мы можем написать любое слово, или число. Возьмём предыдущий пример.

var
str:String; // объявляем переменную типа строка
begin
str:=#72+#101+#108+#108+#111+#32+#87+#111+#114+#108+#100; // присваиваем переменной str значение Hello World с помощью числового значения символов
ShowMessage(str); // Выводим на экран значение переменной str
end;

Здесь с помощью порядковых номеров символов, мы написали слово Hello World.

Решётка перед каждым числом указывает на то, что перед нами не просто число, а код символа в десятичной системе исчисления.

Булевы типы

Переменные булева типа могут принимать только одно из двух значений — 1 или 0. Также, для большего удобства, в программировании эти значения заменяют понятиями true (истина) или false (ложь).

Булевы переменные также очень часто называют логическими переменными. Для объявления этого типа переменных используется слово Boolean.

Давайте рассмотрим пример работы с булевыми типами переменных:

 

var
b:Boolean; // объявляем логическую переменную
str:String; // объявляем строковую переменную
// Условие, если в поле Edit пользовател ввёл текст Иван, то переменной b присваивается значение True (Истина). В противном случае - False (Ложь)
begin
if Edit1.Text='Иван' then
b:=true // после оператора идущего перед else точка с запятой никогда не ставится (это нужно запомнить)
else
b:=false;

// Условие, если b=true, тогда выводим сообщение с текстом Истина. В противном случае - выводим сообщение Ложь
if b=true then
str:='Истина'
else
str:='Ложь';

ShowMessage(str);
end;

АВТОРИЗАЦИЯ