Типы переменных

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

1. Объявление переменной (указываем имя и тип переменной ). Переменная объявляется в специальном разделе var (позже мы познакомимся с этим разделом).

2. Присвоение переменной какого-то значения.

Объявление переменной выглядит так:

var

Peremennaya1 : Real;

Peremennaya2, Peremennaya3 : Integer;

Как видно из примера, вначале указывается имя переменной, затем, после двоеточия указывается тип переменной. Если нужно объявить несколько переменных одного типа, их имена разделяются запятыми. В приведенном примере мы объявили одну вещественную переменную типа Real и две целые переменные типа Integer.

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

:=

Примеры присвоения значений переменным:

A := 10;

B := 20.35;

C := 'Это строка';

D := True;

A := 3+5-1;

Механизм присвоения значения работает следующим образом: вначале рассчитывается значение в правой части команды, то есть, после знака " := ". Затем результат этого значения записывается в переменную. В последней строке примера мы использоваливыражение "3+5-1". Вначале получается результат, в нашем случае он равен 7. Затем этот результат записывается в переменную.

В дальнейшем, имя переменной можно использовать в различных выражениях, например:

A1 := 3;

A2 := A1 + 7;

A1 := A1 + 1;

В первой строке мы записали в переменную число 3. Вторая строка содержит выражение, результатом которого будет число 10. А вот третья строка интересней. Как вы полагаете, что будет записано в переменную A1? Если ваш ответ 4, вы совершенно правы: вначале рассчитывается результат правой части команды, где в переменной A1 еще старое значение, затем он записывается в эту же переменную, изменяя ее значение.

В таблице 2.1 перечислены основные типы переменных:

Таблица 2.1.
Название типа Описание Пояснения
Integer Целое число Переменная может содержать только целые числа, как со знаком, так и без знака.
Real Вещественное число Переменная может принимать в качестве значения целые и дробные числа, со знаком и без знака.
String Строка Переменная может хранить любые символы и наборы символов. В переменную String можно записать до 2 Гб символов.
Boolean Логический тип Булева переменная, может быть либо False (Ложь), либо True (Истина).

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

Строки

С этим типом переменных приходится работать довольно часто. В примере выше мы указывали строку 'Это строка', а в прошлой лекции имели дело со строкой 'Hello, world!'. Вы уже заметили, что все строки должны быть заключены в одинарные кавычки. Размер строки практически не ограничен. Вы можете записать в строку любой текстовый файл, все зависит от того, сколько места есть у Вас на диске, и какой объем ОЗУ у Вас установлен.

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

Поместите на форму, один под другим, следующие компоненты:

Label, Edit и Button. С Label и Button вы уже знакомы по прошлой программе – Label это простая надпись, а Button – кнопка на форме. Компонент Edit представляет собой поле для ввода пользователем какого-то значения, какой-то строки.

Растяните компонент Edit, сделав его примерно вдвое длинней.

Выделите компонент Label (одним нажатием мыши!), и в его свойстве Caption вместо "Label1" впишите "Как твое имя?".

Теперь выделите компонент Edit, и удалите "Edit1" из свойства Text, оставив там пустое поле. Свойство Text этого компонента содержит тот текст, который в данный момент находится в поле ввода. Вообще, со свойствами компонента можно обращаться, как с переменными. В большинство свойств можно заносить значения не только в Инспекторе объектов, в момент разработки формы, но и во время выполнения программы.

Выделите кнопку, и в ее свойстве Caption напишите "Нажми меня!". Для красоты, переместите ее в центр формы.

Измените размер формы, чтобы на ней не было много пустого места. А также в свойстве Caption формы напишите "Приветствие". Напомним, чтобы выделить форму, нужно один раз щелкнуть мышью по любому свободному месту формы. Если вы все сделали правильно, у вас должна получиться такая форма:


Рис. 2.1.Внешний вид формы

Теперь создадим обработчик события для кнопки. Для этого дважды щелкните по кнопке, которую вы разместили на форме. Сразу же вы попадаете в Редактор кода, и курсор мигает между строками begin и end. Begin – это начало процедуры, после него точка с запятой не ставится. End – конец процедуры, после этого оператора точка с запятой обязательна. Если вы присмотритесь, то в последней строке редактора кода увидите end с точкой – это конец программы. Переменные указываются (описываются) перед началом процедуры. Следовательно, строку begin нужно будет опустить, а перед ней вписать раздел переменных var, и указать переменную s. Процедура должна выглядеть так:

procedure TForm1.Button1Click(Sender: TObject);var s: String;begin s:= 'Привет, ' + Edit1.Text + '!'; ShowMessage(s);end;

Обратите внимание, что когда вы поставите точку после названия компонента Edit1, выйдет список доступных свойств, методов и событий. Когда мы впишем первую букву "T", список сортируется – в нем останутся только команды на букву "T", причем Delphi оценивает контекст, и оставляет в списке только те команды, которые в этом контексте могут быть использованы. В нашем случае, это строка. Свойство Text, которое останется в списке, может быть использовано в качестве строки:

Рис. 2.2.Выбор свойства из списка – подсказки

Теперь нет нужды вводить "Text" самим – это свойство выделено в списке, и нам достаточно нажать <Enter>, чтобы вставить его в код. На будущее запомните: всегда, когда вы ставите точку после названия компонента, дождитесь такого списка. Дело не только в том, что так легче вводить код. Если список так и не появился, значит вы допустили ошибку. Возможно, в названии компонента, или даже в предыдущей строке.

Теперь сохраните проект в отдельную папку, модуль, как обычно, назовите Main, а проект можете назвать, например, Privet. После сохранения скомпилируйте его и посмотрите, какое сообщение будет выходить при различных строках, которые введетпользователь в поле ввода Edit1.

Справедливости ради стоит заметить, что в данном примере вовсе необязательно было использовать переменную – мы это сделали лишь в учебных целях. Такого же эффекта можно было добиться, если использовать выражение

'Привет, ' + Edit1.Text + '!'

прямо в команде ShowMessage:

procedure TForm1.Button1Click(Sender: TObject);begin ShowMessage('Привет, ' + Edit1.Text + '!');end;

Стиль

Если вы надумаете пойти устраиваться на работу программистом, первым делом вас попросят показать ваши исходные коды. И дело тут вовсе не в том, что кто-то хочет украсть вашу программу, чтобы потом выдать ее за свою. Понимающие люди в первую очередьсмотрят на стиль оформления кода. Давайте рассмотрим предыдущий пример:

procedure TForm1.Button1Click(Sender: TObject);

var s: String; begin s:= 'Привет, ' + Edit1.Text + '!'; ShowMessage(s); end;

Такой код вполне работоспособен, однако выглядит он не очень "читабельно", в нем легко запутаться. Посмотрите такой пример:

procedure TForm1.Button1Click(Sender: TObject);

var

s: String;

begin

s:= 'Привет, ' + Edit1.Text + '!';

ShowMessage(s);

end;

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

procedure TForm1.Button1Click(Sender: TObject);

var

s: String;

begin

s:= 'Привет, ' + Edit1.Text + '!';

ShowMessage(s);

end;

Такой код читать еще легче. Старайтесь сразу привыкать к такому стилю, чтобы не только другим было легко читать ваш код, но и вы сами не запутались в нем. Позднее мы еще вернемся к стилям программирования.