Operadores aritiméticos - Precedências

Postado por Samuel Lima em 28 de Agosto de 2016  •  Comentários (0)  • 

Familiarizar-se cedo com o uso dos operadores, são obrigações de todos
os interessados por linguagem C.
Ter domínio sobre as quatro classes de operadores é fundamental para
quem programa em C, isto é básico, não podemos pular.
Em posts anteriores já venho falando sobre operadores, e neste aqui,
concentro as atenções aos operadores aritiméticos.
Todos os operadores aritméticos trabalham sempre com dois operacionais
um na direita e outro na esquerda por isto são considerados binários.
Os cálculos de expressões aritiméticas em C obedece regras rígidas de
precedências de operadores para que os cáculos sejam exatos.
Más isto não é um problema para o programador já que o mesmo pode utilizar
parênteses para definir que estes cálculos devam ser realizados primeiro,
isto nada mais é do que o fato em que estamos alterando a ordem
das operações já que os parênteses tem o maior nível de precedência.
Basicamente os parênteses vem primeiro, se houver vários, os cálculos
acontece da esquerda para direita já que o nível de precedência são iguais.
depois vem: multiplicação, divisão, adição e subtração.

Os operadores aritiméticos são estes abaixo:

++ Incremento
-- Decremento
% Módulo da divisão (resto)
/ Divisão
* Multiplicação
+ Adição
- Subtração, também menos unário

OPERADORES ARITIMÉTICOS - PRECEDÊNCIAS

Trocamos as chaves e os colchetes por parêntese e os de Vêzes x por (*)
e os de Dividir : por (/) já que não são operadores aritiméticos
Observando a resolução percebemos logo que o C começou a resolver
A expressão pelos parênteses internos.

Abaixo a expressão original

27 + { 14 + 3 x [ 100 : ( 18 – 4 x 2 ) + 7 ] } : 13

Abaixo a expressão com os símbolos originais alterados

27 + ( 14 + 3 * ( 100 / ( 18 - 4 * 2 ) + 7 ) ) / 13

1ª 27 + ( 14 + 3 * ( 100 / ( 18 - 8 ) + 7 ) ) / 13 ==> 32
2ª 27 + ( 14 + 3 * ( 100 / 10 + 7 ) ) / 13 ==> 32
3ª 27 + ( 14 + 3 * ( 10 + 7 ) ) / 13 ==> 32
4ª 27 + ( 14 + 3 * 17 ) / 13 ==> 32
5ª 27 + ( 14 + 51 ) / 13 ==> 32
6ª 27 + 65 / 13 ==> 32
7ª 27 + 5 ==> 32

Na 1ª linha, dentro do parênteses mais interno temos dois operadores aritiméticos,
que são o de multiplicar (*) e o de menos. (-), note que o C já
começou resolvendo pelo de multiplicar já que ele tem a precedência
maior que o de menos, com isto, um parêntese é resolvido.

Na 2ª linha, dentro do parênteses mais interno temos dois operadores aritiméticos,
que são o de Dividir (/) e o de adição (+), note que o C já
começou resolvendo pelo de Divisão já que ele tem a precedência
maior que o de adição, com isto, mais um parêntese é resolvido.

Na 3ª linha, dentro do parênteses mais interno temos um operador aritimético,
que é o de adição (+), note que o C já o resolveu, pois ele sempre começa por
parêntes mais interno, com isto, mais um parêntese foi resolvido.

Na 4ª linha, dentro do último parêntese temos dois operadores aritiméticos,
que são o de adição (+), e o de multiplicação note que o C já
começou resolvendo pelo de Multiplicação já que ele tem a precedência
maior que o de adição, o último parêntese ainda não foi resolvido.

Na 5ª linha, dentro do último parêntese temos um operador aritimético,
que é o de adição (+), porém, logo é resolvido por C, não esqueça
que o C sempre começa pelos parênteses, e quando tem vários, sempre elimina os mais
internos pela ordem.

Na ¨6ª linha, não temos mais parênteses más ainda temos dois operadores aritiméticos,
que são o de adição (+), e o de Divisão (/), tá mais que claro, que o C
resolveria primeiro o de Divisão já que a precedência dele é maior que o de adição.

Na 7ª linha temos o final da expressão com o resultado mais uma vez.

Tags: C/C++ |

  • Download
  • Comentar
  • Comentários
blog comments powered by Disqus

Comentários ir para topo

Código fonte ir para topo