Cursos / Eletrônica / Lógica de Programação / Aula

arrow_back Aula 03 - Expressões e operadores

Precedência de Operadores

Você recorda que na Matemática algumas operações devem ser realizadas antes de outras? Observe a expressão matemática abaixo e encontre o valor de x.

$$x = 2 + 3 * 4 - \frac{10}{2}$$

Qual o valor de x? 5 ou 9 ou 15?

É provável que você tenha encontrado a resposta correta para essa equação matemática, pois deve recordar-se que algumas das operações possuem precedência em relação às outras. Por esse motivo você deve ter realizado, primeiro, a multiplicação, e em seguida a divisão (fração). Só então procedeu com a soma e, por último, a subtração, correto?

Essa precedência também existe nas operações realizadas pelo computador. Assim, como na matemática, o computador realizará primeiro as operações de exponenciação, em seguida, multiplicação e divisão para, só então, realizar as operações de adição e subtração. O Quadro 04 apresenta um resumo sobre as precedências dos operadores aritméticos.

Quadro 04 - Precedências dos operadores aritméticos
Operador Operação Prioridade de Precedência
^ Exponenciação 0
*
/
mod
Multiplicação
Divisão
Resto da divisão
1
1
1
+
-
Adição
Subtração
2
2

Nesse quadro foram apresentados três níveis de precedências, de acordo com as operações. O nível 0 (zero) representa a precedência máxima, o nível 1, que é intermediário e o nível 2 que representa a menor precedência. As operações presentes em uma expressão serão calculadas considerando, primeiro, a prioridade de precedência (começando pela prioridade zero). Caso exista mais de uma operação com o mesmo nível de precedência, as operações serão realizadas sequencialmente da esquerda para a direita, obedecendo a ordem em que aparecem na expressão.

Veja o exemplo apresentado e informe o valor que resultou dessa expressão. Depois, substitua a soma pela operação de exponenciação. Então? Com esse novo procedimento houve alguma mudança no resultado?

Usando parênteses

E se for necessário alterar a ordem em que as operações são realizadas em uma expressão? Por exemplo na expressão 'x := 2 ^ 3 + 4 / 2' se quer que a soma seja realizada primeiro e, só então, a multiplicação e a divisão.

Para que isso seja possível deve-se utilizar os parênteses para definir explicitamente qual a ordem que as operações devem ser realizadas. Para o exemplo citado, a expressão ficaria assim 'x := 2 ^ (3 + 4) / 2'. Se você testar essas duas expressões verificará que os valores finais serão bem diferentes. Experimente!

Quando se utiliza os parênteses define-se subexpressões e essas, por sua vez, deverão ser calculadas primeiro antes da expressão total ser avaliada por completo. Quando uma subexpressão é então avaliada, ela é substituída por seu valor.

Quando em uma expressão houver vários níveis de subexpressões, a mais interna será sempre avaliada primeiro. Observe novamente um exemplo no simulador, qual será o resultado obtido nessa expressão?

Na expressão do simulador há uma subexpressão mais interna que é a soma de '3+4'. Somente após essa soma ser realizada e substituída pelo seu valor, é que a subexpressão externa (a operação de divisão) será avaliada. Quando todas as subexpressões forem avaliadas a expressão final poderá então ser calculada e seu resultado será atribuído a variável, denominada 'resultado'. Resumidamente, após a soma ser realizada, será a vez da operação de divisão e, em seguida, a de multiplicação.

Versão 5.3 - Todos os Direitos reservados