Изучение принципов алгоритмического программирования на языке Pascal

       

Манипуляции переменными в языке 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;

Содержание раздела