Манипуляции переменными в языке Pascal
Вычислительный процесс основан на манипуляции данными. Данные, используемые программе на алгоритмическом языке, хранятся в переменных. Каждая переменная языка Pascal имеет свой тип. Тип переменной определяет не только размер блока памяти, занимаемой переменной в компьютере, но и диапазон возможных значений, которые разрешается помещать в переменную заданного типа. При попытке поместить в переменную значение, недопустимое для её типа, происходит ошибка. В некоторых случаях с целью изменения типа значения проводится процедура преобразования (согласования, приведения) типа.
Каждая используемая в программе переменная должна быть объявлена в специальной секции var программы или подпрограммы. Объявление переменной означает указание её имени (идентификатора) и типа значения, содержащегося в ней.
Синтаксис объявления переменных выглядит следующим образом:
<идентификатор_переменной1>:<тип1>;
<идентификатор_переменной2>:<тип2>;
…
<идентификатор_переменнойn>:<типn>;
Если требуется объявить несколько переменных, имеющих один и тот же тип, допустимо перечислять через запятую их идентификаторы.
Например,
flag: Boolean;
X, Y: Integer;
Radius, Length, Distance: Real;
В пределах одной программы (подпрограммы) не может быть объявлено двух объектов, имеющих один и тот же идентификатор.
Алгоритмические языки программирования основаны на операции присвоения. Эта операция позволяет изменять значение переменной в явном виде. В самом общем случае операция присвоения имеет следующий вид:
<переменная> := <выражение>
Здесь под понятием «выражение» подразумевается результат арифметических, логических, символьных и иных вычислений, допустимый для переменной слева от знака присвоения. Выражением может быть:
- константа (например, a:=-50);
- переменная (например, b:=c);
- арифметическое выражение (например, c:=a+d/2-e*4);
- выражение с вызовами функций (например, y:=sin(x) );
- логическое выражение (например, flag1 and (x < val2) );
- комбинированное выражение (например, y:=3-sin(2*x) ).
В любом из перечисленных случаев выполнение оператора присвоения происходит по стандартной схеме:
- получение значения выражения (вычисление) справа от знака присвоения;
- проверка соответствия типа полученного значения и переменной;
- размещение значения в ячейке памяти, закреплённой за переменной.
Следует отметить, что перечисленные действия происходят не одновременно, а последовательно. Начало следующего шага следует за окончанием предыдущего.
Не следует путать логический оператор «=» проверки равенства левой и правой частей выражения с оператором присвоения «:=».
На рис. 1 приведены примеры работы оператора присвоения. На рисунках обозначены переменные, связанные с ними ячейки памяти и их содержимое до и после выполнения оператора присвоения.
Рис. 1. Иллюстрации работы оператора присвоения
Из рисунка видно, что оператор присвоения, по обе стороны которого указаны переменные, создаёт копию значения правой переменной в левой. Кроме того, если в выражении справа присутствует переменная, указанная слева, вычисление выражения происходит относительно старого
значения переменной.
В ряде случаев возникает необходимость обменять
переменные значениями. В языке Pascal нет оператора, позволяющего это сделать краткой записью. Наиболее рациональный способ сделать это заключается во введении третьей вспомогательной переменной.
Допустим, требуется однотипные переменные A и B обменять значениями. Вспомогательная переменная C должна иметь тот же тип, что A и B. Схема обмена значениями представлена на рис. 2.
Рис. 2. Иллюстрации работы оператора присвоения
При описании этих операций на языке Pascal можно выстроить следующую последовательность операторов присвоения:
C:=A; A:=B; B:=C;
Тот же результат будет у противоположно направленной цепочки:
C:=B; B:=A; A:=C;