Переменные и константы в Delphi XE

- Константин, что в переводе с греческого значит „постоянный“!

Стандартное представление главного героя

Покровских ворот

Сердце красавицы склонно к измене И к перемене, как ветер мая.

 

Дж. Верди. Риголетто

Константы - это параметры (объекты) программы, которые не могут из­менять своё значение в ходе выполнения программы.

Как мы уже знаем, все числа являются числовыми константами. Из чисел, знаков операций, идентификаторов некоторых стандартных функций и круглых скобок можно составлять константные выражения:

123 ’ Z ’

Cos(3.14)

’stringl ’

Chr(255)

Точно так же из любых символов мы можем составить символьные (один любой символ) и строковые константы (любое количество любых симво­лов, в том числе и ни одного). Такие константы заключаются в одинарные (не двойные!) кавычки:

’G’   ’R’ ’7’ ’Ж’ ’Э’ - символьные константы

’’ - пустая строка, в которой нет ни одного символа

’Delphi’    ’G’   ’Constant’ ’Строковая константа’  -          строковые кон­станты

Строковые и символьные константы можно соединять знаком +:

’Delphi’   + ’ - ’   + ’ это наш выбор! ’

Значением этого выражения будет строка «Delphi- это наш выбор!»

’205’    ’14.007’    ’2 + 2’  -  тоже   строковые      константы! Их значени­ями являются именно строки, а не числа, поэтому значение выражение '2 + 2' вовсе не 4!

Если в строковой константе имеется одиночная кавычка, то её следует по­вторить дважды.

 

Кроме того, существуют логические константы True(соответствует зна­чению истина), False(ложь), а также константа nil (0, используется как значение указателей).

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

Именованные константы

Именованные константы описываются в разделе объявления констант модуля или подпрограммы. Он начинается зарезервированным словом const, за которым следуют объявления констант, состоящие из имени, зна­ка равенства и значения константы. Завершается объявление точкой с за­пятой:

Const

Имя= значение;

Здесь значение - это константа или константное выражение.

Например:


const
num= 123; pi= 3.1415926; pi2= pi * 2; e12= 2.1728 / 2; str= ’string1’;
Flag= TRUE;
Ch= ’s’;

Именованные константы получают своё значение при объявлении и потом изменить его не могут.

Константы принято описывать раньше переменных, так как в их объявле­ниях часто эти константы используются.

Разделов объявления констант и переменных может быть сколько угодно:


const
num= 12 3; pi= 3.1415926; var s: single;
c1: char; const c: integer= $ffff;

Вы должны были обратить внимание на то, что тип констант разный, но нигде не указан. Тогда каким же образом компилятор определяет его? - По виду константы или константного выражения! Действительные числа должны быть записаны с десятичной точкой или в научной нотации. Все остальные числа считаются целыми (десятичными и 16-ричными). Сим­вольные (один символ) и строковые (любое количество символов) кон­станты должны быть заключены в одиночные кавычки. Логические долж­ны иметь значение TRUEили FALSE.

 

При компиляции программы значения всех именованных констант вычис­ляются и подставляются в исполняемом коде вместо их идентификаторов. Это немного увеличивает скорость работы программы, но главная цель применения именованных (а не явных) констант в том, чтобы сделать ис­ходный код более понятным и облегчить модификацию программы в слу­чае необходимости.

 

Пусть нам нужно написать программу, играющую в шашки. Доска имеет 8 вертикалей и 8 горизонталей. Если эти числа использовать в исходном ко­де, то эти восьмёрки невозможно будет отличить от других восьмёрок, ко­торые тоже могут оказаться в коде. Да и вообще число 8 никак не указыва­ет на то, что это число вертикалей на шахматной доске. Пусть, несмотря на это, нам удалось написать шашечную программу. Но - аппетит приходит во время еды: мы решили взяться за 100-клеточные шашки, а там доска по­больше: 10 горизонталей и столько же вертикалей. Придётся просматри­вать (и очень внимательно!) весь код и исправлять восьмёрки на десятки.

 

Конечно, лучше сразу объявить две константы:


Const
MAX_ROW = 8;
MAX_COL = 8;

Их же следует использовать и в коде программы, тогда при переходе от русских шашек к международным достаточно будет изменить только 2 числа в самом начале программы, где их отыскать совсем нетрудно:


MAX_ROW = 10;
MAX COL = 10;

Надеюсь, вы даже и не подумали, что после этого программа суме­ет играть в международные шашки! Речь идёт только о размере доски, алгоритм игры изменится до неузнаваемости, но это уже ваша забота.

Переменные

Переменные - это параметры (объекты) программы, которые могут из­менять своё значение в ходе выполнения программы.

Физически переменная представляет собой область памяти (её размер за­висит от типа переменной; в этих ячейках памяти хранится значение пе­ременной), связанную с её идентификатором.

 

Как и все другие объекты программы, до первого использования перемен­ные должны быть объявлены. Переменные описываются в разделе объяв­ления переменных модуля или подпрограммы. Он начинается зарезерви­рованным словом var(от слова variable- переменная), за которым следуют объявления переменных.

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


Var
I,i,n: integer;
Flag: boolean:
Ch: char;
X,y,z: single;

Переменные одного типа можно перечислять через запятую с последую­щим указанием их общего типа.

Типом переменной может быть:

  • стандартный тип Delphi (integer, single, char...);
  • ранее определённый пользователем тип:


Type
TNumber= 0..10;
Var
Num: TNumber;

  • непосредственно вводимый при объявлении тип:


Var
0..10;
Num:

Хорошенько запомните: после объявления переменной её значение не определено. При выполнении программы для каждой переменной выделя­ется память, но в этих ячейках может оказаться всё что угодно, поэтому значение переменной будет меняться от одного запуска программы к дру­гому. Это может привести к ошибкам: в некоторых случаях программа бу­дет работать правильно, в других нет. Это значит, что все переменные должны быть инициализированы, то есть им должно быть присвоено ка­кое-либо значение (конечно, не при объявлении):

 


var s: single; begin
s:= 3.1415926;

 

Никогда не используйте неинициализированные переменные!

 

Впрочем, Delphiследит за вами! После отладочного запуска программы проверяйте содержимое окна сообщений

Переменные и константы в Delphi XE

В третьей строке компилятор предупреждает (такое легкомысленное от­ношение к переменным ошибкой не считается, но использовать её не сле­дует!), что вы забыли задать значение переменной s.

 

Глобальные переменные инициализируются автоматически зна­чением по умолчанию. Для числовых переменных - нуль, для стро­ковых - пустая строка. Инициализация локальных переменных целиком лежит на совести программиста.

 

Два других сообщения - подсказки: вы объявили переменные, то не ис­пользовали их. Возможно, они лишние и их следует удалить.


const 
num= 123; pi= 3.1415926; Flag= TRUE; 
var s: single; begin s:= num; s:= pi; s:= flag;

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

Переменные и константы в Delphi XE

������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте: