Выражения
Выражения используются для задания порядка действий и содержат константы, переменные, названия функций, знаки операций (арифметических, логических, сравнения), круглые скобки. Результатом выражения может быть величина любого типа за исключением файлового. Однако в стандарте языка, в отличии от многих языков программирования, классификация выражений по типу результата отсутствует. В данном пункте будем рассматривать выражения, результат которых имеет стандартный тип: числовой, булевский, литерный.
Порядок выполнения операций в выражении определяется тремя факторами:
- приоритетом операций;
- порядком расположения операций в выражении;
- наличием скобок.
В первую очередь вычисления производятся в скобках. В их отсутствии действия в выражении выполняется слева направо с соблюдением следующего приоритета:
- вычисление функций;
- not;
- *, /, div, mod, and;
- +, -, or, xor;
- =, < >, >=, <=, >, < .
Пример 1. Записать на языке Паскаль арифметическое выражение
Ответ: 0,3*(Sqr(Sin(X)) - Sqr(Cos(X))) / Sin((X+Y)*0,5) -Exp(Cos(X) + Sin(X)) * Abs(Ln(Sqr(X)*X)) + 1E-7
Оператор присваивания
Оператор присваивания имеет вид: V:= A, где V- переменная любого типа, за исключением файлового; А - выражение, совместимое по типу с V.
Ограничимся рассмотрением числовых, булевских и литерных значений. В этом случае два типа считаются совместимыми, если они:
- идентичны;
- оба вещественные;
- оба целые;
- один из них является поддиапазоном другого;
- оба типа - поддиапазоны базового.
При этом допускается единственное исключение: переменной вещественного типа можно присвоить выражение целого типа.
Однако при совместимости типов результат присваивания будет всегда правильным только в том случае, если тип V перекрывает тип А или совпадает с ним.
Рассмотрим примеры простейших операторов присваивания.
Пусть
VAR
X,Y,Z,R: real;
К, I: integer:
В : boolean; С : char;
Тогда
К:=К+ 1; или К := Succ(K) - увеличение К на единицу;
Z := Sqrt(Sqr(X-l) + Sqr(Y-2))- расстояние между точками (X; Y) и (1; 2);
В := Sqr(X-l) + Sqr(Y-2) <= Sqr(R) - имеет значение true при попадании точки (X, Y) в круг радиуса R с центром в точке (1;2) и false а противном случае;
I:= Ord('9') - Ord('0') - перевод символа '9' в цифру 9;
С:= Chr(K + Qrd('0')) - перевод цифры К в символьное представление.