Pascal - precedência de operadores
A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição.
Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta do que +, portanto, primeiro é multiplicado por 3 * 2 e, em seguida, soma 7.
Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior. Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro. A tabela a seguir expressa a precedência do operador Pascal -
Operador | Precedência |
---|---|
~, não, | Altíssima |
*, /, div, mod e, & | |
|,!, +, - ou, | |
=, <>, <, <=,>,> =, em | |
ou então, e então | O mais baixo |
Tente o exemplo a seguir para entender a precedência do operador disponível em Pascal -
program opPrecedence;
var
a, b, c, d : integer;
e: real;
begin
a := 20;
b := 10;
c := 15;
d := 5;
e := (a + b) * c / d; (* ( 30 * 15 ) / 5 *)
writeln('Value of (a + b) * c / d is : ', e:3:1 );
e := ((a + b) * c) / d; (* (30 * 15 ) / 5 *)
writeln('Value of ((a + b) * c) / d is : ' , e:3:1 );
e := (a + b) * (c / d); (* (30) * (15/5) *)
writeln('Value of (a + b) * (c / d) is : ', e:3:1);
e := a + (b * c) / d; (* 20 + (150/5) *)
writeln('Value of a + (b * c) / d is : ' , e:3:1 );
end.
Quando o código acima é compilado e executado, ele produz o seguinte resultado:
Value of (a + b) * c / d is : 90.0
Value of ((a + b) * c) / d is : 90.0
Value of (a + b) * (c / d) is : 90.0
Value of a + (b * c) / d is : 50.0