Оператор присваивания

Приоритет операций

Операция присваивания

Оператор присваивания кодирует базовую операцию присваивания и является наиболее употребимым оператором языка. С помощью этого оператора можно присвоить некоторой переменной значение выражения, например:

var A, B: real; N : integer; . . . N := 100; B := -3.7; N := N+1; A := 2*B/0.5;

В качестве символа присваивания используют “:=”. Оператор выполняется в соответствии с базовой операцией присваивания: вычисляется значение выражения, стоящего справа от символа присваивания, после чего переменная, указанная в левой части оператора, получает вычисленное значение.

Порядок вычисления выражения определяется старшинством (приоритетом) содержащихся в нем операций. В языке Паскаль принят следующий приоритет операций:

  • унарная операция not, унарный минус -, взятие адреса @
  • операции типа умножения: * / div mod and
  • операции типа сложения: + - or xor
  • операции отношения: = <> < > <= >= in

Порядок выполнения операций переопределить можно с помощью скобок. Например 2*5+10 равно 20, но 2*(5+10) равно 30.

Оператор присваивания кодирует базовую операцию присваивания и является наиболее употребимым оператором языка. С помощью этого оператора можно присвоить некоторой переменной значение выражения, например:

var A, B: real; N : integer; . . . N := 100; B := -3.7; N := N+1; A := 2*B/0.5;

В качестве символа присваивания используют “:=”. Оператор выполняется в соответствии с базовой операцией присваивания: вычисляется значение выражения, стоящего справа от символа присваивания, после чего переменная, указанная в левой части оператора, получает вычисленное значение. При этом надо соблюдать совместимость типов (см. 2.5.2.). Подчеркнем, что в операторе присваивания слева всегда стоит переменная, а справа - выражение.
Выражение представляет собой константы, переменные, функции, объединенные знаками операций. Частным случаем выражения является просто константа, переменная или вызов функции. Тип такого выражения совпадает с типом операнда. В более общем случае, если выражение состоит из нескольких операндов, его тип определяется типом операндов и видом операций. Примеры выражений:

175 I Sin(X) + 2.5 / Y

Поясним смысл некоторых операций на примере:

var X: real; Y: integer; . . . X := 1/2; X= 0.5; Y := 1 Div 2; Y= 0; Y := 1 Mod 2; Y= 1; ! Y := 1/X; {Запрещенная операция, т.к. тип выражения real, а тип переменной – integer}

В Паскале отсутствует операция возведения в степень, однако это ограничение преодолевается использованием известного соотношения:

Приведем примеры правильных выражений в операторах присваивания:

var X, Y: real; I, J, A, B: integer; F : boolean; . . . A := Trunc(8.87) Div 3; { A= 2} F := Succ( Odd(19)); { F= FALSE} X := +7.69; Y := -3.4; I := Trunc(X); { I = 7 } J := Trunc(Y); { J = -3} I := Round(5.75); { I = 6} J := Round(-7.5); { J = -8} Y := Exp(1.0/3.0 * Ln(X));