| 4.  Выражения в Turbo Pascal 7Выражение - это синтаксическая единица языка, определяющая способ вычисления некоторого значения. Выражения в языке Паскаль формируются в соответствии с рядом правил (см. [1]) из констант (в том числе и конструкторов множеств - см. п. 6.5), переменных (в том числе и компонент массивов - см. п. 6.1, полей записей - см. п. 6.4 - и полей объектов - см. п. 14), функций (стандартных и написанных самостоятельно), знаков операций и круглых скобок. В этом разделе будут рассмотрены все элементы выражений. 4.1.      ПеременныеПеременными называются параметры программы, значения которых могут изменяться в процессе ее выполнения. Все используемые в программе переменные должны быть определены с указанием их типов. Переменные определяются:
 в разделе объявления переменных программы;в разделе объявления переменных подпрограммы;в разделе объявления переменных модуля;в заголовке подпрограммы.
 Раздел объявления переменных начинается зарезервированным словом var, за которым следуют объявления конкретных переменных, состоящие из имени переменной (имен переменных, перечисленных через запятую, если они одного типа), двоеточия и типа переменной (переменных). Каждое объявление завершается точкой с запятой:  var<список  переменных  1>:    <тип  1>;
 <список  переменных  2>:    <тип  2> ;
 . . .
 <список  переменных  N>:    <тип  N>;
 В разделе объявления переменных наряду с предопределенными типами можно использовать типы, объявленные перед этим в разделе объявления типов, а также новые, вводимые только для конкретных переменных. В заголовке подпрограммы при определении переменных можно использовать лишь стандартные или ранее определенные типы. Пример. 
   | type |  |  
   | Operat = (Plus, Minus, Mult, Divide); |  |  
   | var |  |  
   | X, Y, Z: Real; | {предопределенный тип} |  
   | I, J, K: Integer; | {предопределенный тип} |  
   | Operator: Operat; | {ранее определенный тип} |  
   | Digit: 0..9; | {объявление нового типа} |  Переменные, объявленные не в подпрограмме, называются глобальными, т. к. они доступны во всех частях программы, в том числе и в подпрограммах, и размещаются в сегменте данных размером 65520 байтов. Переменные, объявленные в подпрограмме, называются локальными, т. к. доступны только этой подпрограмме, и размещаются в стековом сегменте. По умолчанию стековый сегмент имеет размер в 16384 байта, однако с помощью ключа компилятора {$М} его можно изменять от 1024 до 65520 байтов. Глобальные переменные постоянно находятся в памяти, локальные размещаются в стеке лишь на время выполнения подпрограммы, затем область стека освобождается. В Turbo Pascal можно использовать абсолютные переменные, располагаемые в определенной области памяти. Абсолютные переменные снабжаются директивой absolute и указанием на место размещения этой переменной. При этом возможны два варианта:
 указание абсолютного адреса в оперативной памяти заданием через двоеточие адреса сегмента и смещения;"привязка" переменной к адресу начала другой переменной.
 Пример. 
   | var |  |  
   | Str:   string[32]; | {тип-строка,   см.   п.   6.2} |  
   | StrLen:   Byte  absolute  Str; | {привязка к началу строки} |  
   | CrtMode:   Byte   absolute  $0040:$0049; | {указание  абсолютного адреса} |  
 
 |