- •Модуль и его структура
- •Структура модуля
- •Список uses
- •Интерфейс
- •Реализациия
- •Инициализация и завершение
- •Ключевые слова
- •Слово const
- •Слово type
- •Слово var
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Расширенная строка
- •Строка с терминальным нулем
- •Операции со строками Слияние
- •Извлечение символа
- •Управляющие символы в строках
- •Разбиение литерала по строкам программы
- •Сравнение строк
- •Строковые функции
- •Форматирование строк
- •Множества
- •Объявление записи
- •Оператор with
- •Массивы записей
- •Совместимость типов данных
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Управление вычислениями Операторы if, then, else
- •Выполнение нескольких инструкций.
- •Вложенные условия.
- •Циклы Элементы структуры цикла
- •Цикл for…
- •Функции Pred и Succ
- •Цикл while
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Включение внешнего файла в модуль
Переменные
Прежде чем использовать в программе переменные их надо объявить. Объявления переменных размещаются в секции модуля, которая идентифицируется словом var . Например,
var
X : Integer; { переменная X объявлена как целочисленная }
Y : Integer; { переменная Y объявлена как целочисленная }
Ранее мы обсудили использование ключевого слова var в терминах модуля. Так, было сказано, что все переменные, используемые в модуле, должны быть объявлены в var–секции. Это действительно так, но вы можете иметь секцию объявления переменных и внутри процедуры, и внутри функции.
Вот пример объявления переменных в процедуре:
procedure TForm1.Test;
var
S : string;
begin
S := 'Hello World!';
Label1.Caption := S;
end;
Объявленную переменную можно использовать в программе для хранения и модификации данных. Рассмотрим несколько примеров. В следующем фрагменте кода используются переменные X и Y, объявленные ранее. Комментарий в конце каждой строки кода поясняет то, что произойдет при выполнении этого кода:
X := 100; { 'X' принимает значение числа 100 }
X := X + 50; { 'X' теперь содержит значение 150 }
Y := 150; { 'Y' содержит значение 150 }
X := X + Y; { 'X' содержит значение 300 }
Inc(X); { Приращение. 'X' теперь содержит значение 301 }
Переменная это область (ячейка) памяти компьютера, которая хранит некоторое значение.
Дадим ряд пояснений к этому коду.
Во–первых, надо ясно понимать, что значение переменной X изменяется только в результате той или иной операции над ней. (Предусмотренные языком Object Pascal операции, функции и процедуры для манипуляции переменными мы рассмотрим позже). Здесь мы видим, что переменным можно присваивать значения, складывать, давать приращение и т.д.
Во–вторых, обратите внимание на то, что каждый сегмент кода заканчивается символом «;». Символ «точка с запятой» используется как символ окончания фразы, выраженной на языке Pascal. Законченные фразы, которые вы пишете на языке Pascal, называются операторами.
ПРИМЕЧАНИЕ. С незапамятных времен, подающий надежды программист обязан был выучить, в чем разница между выражением (expression) и оператором (statement). Официальное определение понятия «оператор» гласит: оператором называется любое выражение, за которым следует символ «;». Выражением называется единица кода, которая вычисляет некоторое значение. Рассмотрим следующий оператор:
c := a + b;
В этом примере фрагмент кода справа от знака присваивания (:=), т.е. a + b, есть выражение. Вся строка целиком – оператор. Можно сказать, что выражение – это часть оператора. Один оператор может содержать несколько выражений. Возможно, сейчас это все же остается запутанным, но вскоре все прояснится. Сейчас просто запомните: оператор заканчивается «точкой с запятой». (Существуют ситуации когда «точка с запятой» в конце оператора не ставится. Такого рода исключения из общих правил будут оговорены особо).
Имена переменных должны удовлетворять правилам построения идентификаторов. Идентификаторы используются также для именования функций, процедур, полей в записях, модулей и других объектов программы. В идентификаторах можно использовать строчные или заглавные буквы английского алфавита, цифры и символ подчеркивания (_). Идентификатор не может содержать ни пробелов, ни специальных символов. Первым символом идентификатора должна быть либо буква, либо символ подчеркивания. Количество символов в идентификаторе не ограничено, но все, что следует после 255-го символа, – игнорируется. Практически же все что длиннее 20 символов, вряд ли полезно. Вот примеры допустимых имен переменных:
aVeryLongVariableName : Integer; { «длинный» идентификатор }
my_variable : Integer; { идентификатор с подчеркиванием }
x : Integer; { одиночный символ в качестве имени }
X : Integer; { это то же самое имя что и предыдущее }
Label2 : string; { имя содержит цифру }
ПРИМЕЧАНИЕ. Язык Pascal не чувствителен к регистру. (т.е. не чувствует разницу между строчными и прописными буквами). Так, в следующих операторах используется одна и та же переменная:
var
XPos : Integer;
{ ...далее }
XPos := 20;
XPOS := 200;
xpos := 110;
XpoS := 40;
Если раньше вы имели дело с языком, который различает заглавные и строчные буквы (C или C++), нечувствительность Object Pascal к регистру может показаться странной, но скоро вы привыкните и к этому.
Несмотря на то, что Pascal не чувствителен к регистру, старайтесь использовать заглавные буквы для того чтобы придать Вашим идентификаторам выразительность. Согласитесь, что идентификаторы EarthMeanRadius или Earth_Mean_Radius привлекательней чем earthmeanradius.