Типы переменных
Каждая переменная имеет свой тип. Тип переменной обязательно нужно указывать, потому что разные типы переменных занимают разный размер, и компьютеру нужно знать, сколько байт в оперативной памяти требуется отвести под указанную переменную. Создание переменной состоит из двух этапов:
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;
Такой код читать еще легче. Старайтесь сразу привыкать к такому стилю, чтобы не только другим было легко читать ваш код, но и вы сами не запутались в нем. Позднее мы еще вернемся к стилям программирования.