Данные и их типы
Delphi является сильно типизированным языком. Это означает что все данные ( переменные и поименованные константы ) до момента их использования должны быть объявлены. При объявлении указывается имя данного и его тип.
Данные могут быть:
Переменные
Константы
Переменные могут изменять свои значения, а константы нет. Константы могут быть представлены своим значением или именем. Поименованную константу удобно использовать, когда некоторое значение константы в приложении используется несколько раз.
Константы объявляются следующим образом:
const
<имя константы >= <значение;
Пример
const
Max =10;
Name =’Alex’;
Тип константы определяется ( по умолчанию ) типом значения.
Переменные объявляются следующим образом:
var
<имя переменной >: < тип>;
Пример
var
N : Byte;
MaxValue , MinValue : Integer;
List : array [1..10] of Tperson;
Раздел описания констант, как правило, предшествует разделу описания переменных.
Delphi имеет набор простых стандартных типов, структурированных типов, а также позволяет создавать пользовательские типы. В Delphi представлен ряд специализированных типов для работы с датой, временем, цветом и т.д. Пользовательские типы позволяют наиболее полно отражать структуру данных задачи. Пользовательские типы строятся на базе стандартных, структурированных и других пользовательских типов.
Каждый тип характеризуется :
Названием
Диапазоном допустимых значений
Допустимыми операциями ( функциями, процедурами )
Объемом используемой памяти
Простые стандартные типы
Простые стандартные типы делятся на:
Целочисленные
Символьные
Логические
Вещественные
Первые три типа относятся к порядковым типам. Порядковые типы характеризуются тем, что каждому значению ставится в соответствие число ( номер 0, 1, 2, 3 ..). Имеется наибольшее и наименьшее значение, имеется возможность найти номер, предыдущее и последующее значение.
Над порядковыми типами данных допустимы следующие функции:
Low(x) – минимальное значение переменной x ;
High(x) – максимальное значение переменной x ;
Ord(x) – порядковый номер значения переменной x;
Pred(x) – значение, предшествующее значению переменной x;
Succ(x) – значение, следующее после значения переменной x;
Кроме того, над перечислимыми типами данных допустимы следующие процедуры:
Dec(x) – уменьшение значения переменной x на единицу;
Inc(x) – увеличение значения переменной x на единицу;
Пример
Ord(‘A’) - 65
Succ(10) - 11
Pred (Succ(‘X’)) -‘X’
Low(K) - 0 , где K типа Byte
Dec(Value) ‘B’ , где Value принимало значение ‘C’
Целочисленный тип
В языке Delphi определено несколько целочисленных типов данных, самый используемый из которых – тип Integer. В таблице 1 приведены все целочисленные типы данных.
Тип данных |
Диапазон значений |
Формат чисел в памяти |
Integer |
-2 147 483 648 … 2 147 483 647 |
32 бита со знаком |
Cardinal |
0 … 4 294 967 295 |
32 бита без знака |
ShortInt |
-128 … 127 |
8 бит со знаком |
SmallInt |
-32 768 … 32 767 |
16 бит со знаком |
LongInt |
-2 147 483 648 … 2 147 483 647 |
32 бита со знаком |
Int64 |
-2 в степ.63...(2 в степ.63)-1 |
64 бита со знаком |
Byte |
0…255 |
8 бит без знака |
Word |
0 … 65 535 |
16 бит без знака |
Longword |
0 … 4 294 967 295 |
32 бита без знака |
Пример
var
x, y : Byte;
…….
x:=y;
Необходимо соблюдать совместимость типов. Оператор присваивания х:=у будет верным (т.е. будет работать правильно), если диапазон типа для “х” включает в себя диапазон типа для “у”.
Над целыми числами можно выполнять арифметические операции. Результатом выполнения арифметического выражения является, соответственно, целое число.
В языке Delphi определены следующие операции над целыми:
+, - , * , div , mod
результатом целочисленного деления X div Y будет результат деления X на Y, округленный до ближайшего целого числа.
результатом операции mod будет остаток от целочисленного деления Таким образом, выражение X mod Y эквивалентно выражению X-(X div Y)*Y.
Пример
var
a, b, c, d: Integer ; // Объявляем четыре целочисленные переменные
…….
a := 7; b := 5; c := -10 ; // Присваиваем начальные значения
d := a + b ; // Результатом будет число 12
d := -d ; // Результатом будет число -12
d := d + c – 10 ; // Результатом будет число -32
d := d div c ; // Результатом будет число 3
d := a mod b ; // Результатом будет число 2
Для ввода целочисленных данных используются компоненты Edit, SpinEdit.
Пример
a:=SpinEdit1.Value;
b:=StrToInt(Edit1.Text);
Для вывода целочисленных данных используются компоненты Edit, SpinEdit, Label.
Пример
SpinEdit1.Value:=a;
Edit1.Text:=IntToStr(b);
Label1.Caption:=IntToStr(c);