Каждая переменная и константа в программе на языке Паскаль имеет свой тип данных. Тип определяет набор операций, которые могут быть к ней применимы, а также тип результата выполнения этих операций. Имеются типы стандартные и типы, описанные пользователем.
Все переменные, используемые в программе должны быть описаны в разделе описания переменных VAR.
идентификатор [,идентификатор>,…]: тип;
Например,
VAR A : Integer;
B, C: Real;
Здесь описана переменная А целого типа и две переменные В и С вещественного типа.
Тип, в свою очередь, может быть предварительно определен в разделе описания типов TYPE.
Идентификатор_типа = тип;
Например,
TYPE I = Integer;
После такого описания типов описания переменных А, В и С могут быть следующими:
VAR A : I;
B, C: R;
Строчный тип используется для описания строк длиной от 0 до 255 символов. Максимальная длина строки указывается в квадратных скобках. Если она не указана, максимальная длина полагается 255. Строковые переменные, как и строковые константы, занимают количество байтов, равное максимальной длине строки плюс 1 байт (нулевой), предназначенный для хранения текущей длины этой строковой переменной. Важной особенностью Турбо Паскаля является то, что к каждому символу строки возможен доступ по его номеру.
Идентификатор_типа = String[максимальная длина строки];
Например,
TString = String[100];
S,S1 : Tstring;
S2 : String[20];
Наиболее простым и часто используемым оператором языка является оператор присваивания:
переменная := выражение;
левая_часть := правая_часть;
Оператор работает справа налево, то есть сначала вычисляется то, что записано в правой части, а затем результат записывается «в левую часть».
Выражение – это формула для вычисления значения. Она образуется из операндов, соединенных знаками операций и круглыми скобками. В качестве операндов могут выступать переменные, константы, указатели функций.
Тип переменной в левой части оператора присваивания обычно должен совпадать с типом значения выражения в правой части. Выражения являются составной частью операторов. Возможны случаи несовпадения типов, например, когда слева переменная вещественного типа, а справа выражение целого типа. В этом случае результат преобразуется к типу левой части (здесь это возможно). Но бывают случаи невозможности такого преобразования, и на это укажет транслятор.
В Паскале выражения вычисляются в соответствии с приоритетами операций. Приоритеты выполнения операций следующие (в порядке убывания):
- одноместный минус;
- операция NOT;
- операции типа умножения ;
- операции типа сложения;
- операции сравнения (отношения).
Одноместный минус применим к операндам арифметического типа. Операция NOT– к операндам логических и целых типов. Если в одном выражении несколько операций одного приоритета, то они выполняются, начиная слева. Приоритеты можно изменить, поставив скобки. В логических выражениях необходимы скобки во избежание конфликта типа по приоритету.
Например, если в выражении … (X > 5) AND (Y > 10) … не поставить скобки, то будет синтаксическая ошибка, так как приоритет операции AND выше приоритета операций сравнения >.
операции типа умножения это * | / | div | mod | and
операции типа сложения это + | - | or | xor
операции сравнения это <> | < | > | <= | >= | in
Сравнение строк символов выполняется слева направо посимвольно. Более короткие строки дополняются пробелами справа.