SlideShare uma empresa Scribd logo
1 de 14
OPERADORES ARITMÉTICOS
Conceitos gerais
As linguagens de programação dispõem de uma
variedade considerável de operadores aritméticos, e
como veremos posteriormente, a linguagem C e C++
têm um grade conjunto de operadores. Reportemo-nos
por agora aos mais comuns:
 Os operadores aritméticos
 Expressões aritméticos
 Regras de precedência e associação
 Regras de avaliação
Os operadores aritméticos estão implementados na
generalidade das linguagens de programa, ainda que
possam ter algumas ligeiras variações em alguns casos.
Os operadores podem subdividir-se em:
 Operadores unários – por envolverem apenas
um operador
 Operadores binários – por envolverem dois
operadores
 Operadores de atribuição – por permitirem a
atribuição de um valor variável
 Operadores especiais – existentes em
algumas linguagens como a C e a C++
Operadores unários (de sinal)
O operador de sinal não deve ser confundido com o operador de subtração e soma, pois
apesar de utilizarem o mesmo símbolo, são operadores diferentes.
Assim nos seguintes exemplos:
Supondo que m = 5
Então - m será igual - 5
Supondo a expressão j = 3 - - x
Está será interpretada como sendo j = 3 - (- x)
Operador Símbolo Exemplo Operação
Menos - -x Negação de x
Mais + +x Valor do operando
Operadores binários
Operador Símbolo Exemplo Operação
Multiplicação * x*y Multiplica x por y
Divisão / x/y Divide x por y
Soma + x+y Soma x a y
Subtração - x-y De x subtrai y
Operador de atribuição
Em relação aos operadores de atribuição, a generalidade
das linguagens implementam o operador igual, sendo de a
linguagem C e C++ implementam outros que veremos
posteriormente aquando do estudo de linguagens.
Operador Símbolo Exemplo Operação
Igual = x=y Atribuir o valor de y a x
Operador de sinal
Algumas linguagens dispõe ainda de um
operador ou função que permite calcular o resto
da divisão inteira de dois números, que
representaremos agora por resto (x, y).
Assim por exemplo o resto (9, 5) é 4.
Expressões aritméticas
Uma das capacidades mais importantes do
computador é a facilidade de manipulação de
expressões matemáticas mais ou menos
complexas, pelo que é de importância capital a
compreensão da forma como estas são tratadas.
Um programa depois de escrito passa, como
vimos, por um processo de compilação antes da
sua execução efetiva. No processo de compilação
são executadas, entre outras tarefas a
interpretação das declarações do programa e o
estabelecimento da sequência de operações a
serem executadas a propósito de cada um delas.
Expressões aritméticas
No caso das expressões aritméticas este processo é
executado tendo em atenção duas propriedades
fundamentais, a precedência e a associação. Estas
propriedades afetam a forma como os operadores são
aos operadores.
 Precedência – estabelece que os operadores de maior
precedência tem os seus operandos atribuídos antes dos de
menor precedência, independentemente da ordem em que
surjam na expressão. Veja a tabela de procedências e
associação. Considere os seguintes exemplos:
 2+3*4
 3*4+2
Em ambos os casos a expressão é avaliada em 14. Isto acontece
porque primeiro é executada a multiplicação por ter maior
precedência e só depois a soma.
Expressões aritméticas
 Associação – estabelece, no caso dos operadores
terem a mesma precedência, a ordem pela qual os
operadores serão agrupados, da esquerda para a
direita ou da direita para a esquerda. Esta propriedade
é estabelecida para cada operador. Veja a tabela de
precedência e associação que se segue. Considere o
seguinte exemplo:
 a+b-c
Esta expressão será agrupada da esquerda para a direita,
de acordo com as suas propriedades de associação, pelo
que a ordem será primeiro a soma e depois a subtração.
Expressões aritméticas
São também utilizados os parênteses curvos para a
criação de expressões matemáticas, que impõem uma
determinada ordem de agrupamento. Considere os
seguintes exemplos:
(2-3)*4
2-(2*4)
No primeiro exemplo seria avaliado primeiro o parêntesis (2-3)
e só depois seria efetuada a multiplicação.
No segundo exemplo os parêntesis seriam desnecessários já
que a multiplicação tem precedência relativamente à
subtração. No entanto, é uma boa prática que, mesmo que
irrelevantes sejam utilizados os parêntesis mesmo nas
expressões mais simples.
Expressões aritméticas
No caso de expressões com parêntesis encaixados, a ordem de
agrupamento é do mais interior ao mais exterior, sendo aplicada
a propriedade da associatividade correspondente aos operadores
envolvidos.
Assim na seguinte expressão 1+((3+1)/(8-4)-5) a ordem de
agrupamento será:
1+((3+1)/(8-4)-5)
1+(4/(8-4)-5)
1+(4/4-5)
1+(1-5)
1+-4
-3
Regras de precedência e associação
Classe do operador
unários
multiplicativo
aditivo
relacionais
igualdade
AND
OR
atribuição
Operadores da
classe
- + !
* / Resto()
+ -
< <= > >=
= ¹
&&
||
=
Associatividade
direita / esquerda
Esquerda / direita
esquerda / direita
esquerda / direita
esquerda / direita
esquerda / direita
esquerda / direita
direita / esquerda
Precedência
maior
menor
Regras de avaliação
Como foi referido anteriormente, a avaliação é um processo
distinto, constituindo uma propriedade importante. Esta
refere-se à ordem pela qual o compilador avalia os
operadores. Os compiladores reorganizam as expressões
desde que esta não afete o resultado.
Chama-se a atenção para o fato de a divisão poder levantar
alguns problemas em alguns compiladores, especialmente
quanto estão envolvidos operandos de tipos diferentes ou
operandos negativos.
No caso dos operandos serem de tipo diferente devemos
forçar a conversão entre tipos.
Relativamente aos operandos negativos, estes devem ser
evitados.

Mais conteúdo relacionado

Semelhante a OPERADORES ARITMÉTICOS E REGRAS DE PRECEDÊNCIA

Semelhante a OPERADORES ARITMÉTICOS E REGRAS DE PRECEDÊNCIA (20)

Unidade06
Unidade06Unidade06
Unidade06
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Visual g apostila de algoritmo
Visual g   apostila de algoritmoVisual g   apostila de algoritmo
Visual g apostila de algoritmo
 
Cap 2
Cap 2Cap 2
Cap 2
 
Cap 2
Cap 2Cap 2
Cap 2
 
Aula algoritmo
Aula algoritmoAula algoritmo
Aula algoritmo
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Map, filter e reduce
Map, filter e reduceMap, filter e reduce
Map, filter e reduce
 
Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30
 
Apostila excel avançado
Apostila excel avançadoApostila excel avançado
Apostila excel avançado
 
Cap06
Cap06Cap06
Cap06
 
Cap06
Cap06Cap06
Cap06
 
Introdução ao matlab
Introdução ao matlabIntrodução ao matlab
Introdução ao matlab
 
Matlab1
Matlab1Matlab1
Matlab1
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
03 expressoes
03 expressoes03 expressoes
03 expressoes
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 

OPERADORES ARITMÉTICOS E REGRAS DE PRECEDÊNCIA

  • 2. Conceitos gerais As linguagens de programação dispõem de uma variedade considerável de operadores aritméticos, e como veremos posteriormente, a linguagem C e C++ têm um grade conjunto de operadores. Reportemo-nos por agora aos mais comuns:  Os operadores aritméticos  Expressões aritméticos  Regras de precedência e associação  Regras de avaliação Os operadores aritméticos estão implementados na generalidade das linguagens de programa, ainda que possam ter algumas ligeiras variações em alguns casos.
  • 3. Os operadores podem subdividir-se em:  Operadores unários – por envolverem apenas um operador  Operadores binários – por envolverem dois operadores  Operadores de atribuição – por permitirem a atribuição de um valor variável  Operadores especiais – existentes em algumas linguagens como a C e a C++
  • 4. Operadores unários (de sinal) O operador de sinal não deve ser confundido com o operador de subtração e soma, pois apesar de utilizarem o mesmo símbolo, são operadores diferentes. Assim nos seguintes exemplos: Supondo que m = 5 Então - m será igual - 5 Supondo a expressão j = 3 - - x Está será interpretada como sendo j = 3 - (- x) Operador Símbolo Exemplo Operação Menos - -x Negação de x Mais + +x Valor do operando
  • 5. Operadores binários Operador Símbolo Exemplo Operação Multiplicação * x*y Multiplica x por y Divisão / x/y Divide x por y Soma + x+y Soma x a y Subtração - x-y De x subtrai y
  • 6. Operador de atribuição Em relação aos operadores de atribuição, a generalidade das linguagens implementam o operador igual, sendo de a linguagem C e C++ implementam outros que veremos posteriormente aquando do estudo de linguagens. Operador Símbolo Exemplo Operação Igual = x=y Atribuir o valor de y a x
  • 7. Operador de sinal Algumas linguagens dispõe ainda de um operador ou função que permite calcular o resto da divisão inteira de dois números, que representaremos agora por resto (x, y). Assim por exemplo o resto (9, 5) é 4.
  • 8. Expressões aritméticas Uma das capacidades mais importantes do computador é a facilidade de manipulação de expressões matemáticas mais ou menos complexas, pelo que é de importância capital a compreensão da forma como estas são tratadas. Um programa depois de escrito passa, como vimos, por um processo de compilação antes da sua execução efetiva. No processo de compilação são executadas, entre outras tarefas a interpretação das declarações do programa e o estabelecimento da sequência de operações a serem executadas a propósito de cada um delas.
  • 9. Expressões aritméticas No caso das expressões aritméticas este processo é executado tendo em atenção duas propriedades fundamentais, a precedência e a associação. Estas propriedades afetam a forma como os operadores são aos operadores.  Precedência – estabelece que os operadores de maior precedência tem os seus operandos atribuídos antes dos de menor precedência, independentemente da ordem em que surjam na expressão. Veja a tabela de procedências e associação. Considere os seguintes exemplos:  2+3*4  3*4+2 Em ambos os casos a expressão é avaliada em 14. Isto acontece porque primeiro é executada a multiplicação por ter maior precedência e só depois a soma.
  • 10. Expressões aritméticas  Associação – estabelece, no caso dos operadores terem a mesma precedência, a ordem pela qual os operadores serão agrupados, da esquerda para a direita ou da direita para a esquerda. Esta propriedade é estabelecida para cada operador. Veja a tabela de precedência e associação que se segue. Considere o seguinte exemplo:  a+b-c Esta expressão será agrupada da esquerda para a direita, de acordo com as suas propriedades de associação, pelo que a ordem será primeiro a soma e depois a subtração.
  • 11. Expressões aritméticas São também utilizados os parênteses curvos para a criação de expressões matemáticas, que impõem uma determinada ordem de agrupamento. Considere os seguintes exemplos: (2-3)*4 2-(2*4) No primeiro exemplo seria avaliado primeiro o parêntesis (2-3) e só depois seria efetuada a multiplicação. No segundo exemplo os parêntesis seriam desnecessários já que a multiplicação tem precedência relativamente à subtração. No entanto, é uma boa prática que, mesmo que irrelevantes sejam utilizados os parêntesis mesmo nas expressões mais simples.
  • 12. Expressões aritméticas No caso de expressões com parêntesis encaixados, a ordem de agrupamento é do mais interior ao mais exterior, sendo aplicada a propriedade da associatividade correspondente aos operadores envolvidos. Assim na seguinte expressão 1+((3+1)/(8-4)-5) a ordem de agrupamento será: 1+((3+1)/(8-4)-5) 1+(4/(8-4)-5) 1+(4/4-5) 1+(1-5) 1+-4 -3
  • 13. Regras de precedência e associação Classe do operador unários multiplicativo aditivo relacionais igualdade AND OR atribuição Operadores da classe - + ! * / Resto() + - < <= > >= = ¹ && || = Associatividade direita / esquerda Esquerda / direita esquerda / direita esquerda / direita esquerda / direita esquerda / direita esquerda / direita direita / esquerda Precedência maior menor
  • 14. Regras de avaliação Como foi referido anteriormente, a avaliação é um processo distinto, constituindo uma propriedade importante. Esta refere-se à ordem pela qual o compilador avalia os operadores. Os compiladores reorganizam as expressões desde que esta não afete o resultado. Chama-se a atenção para o fato de a divisão poder levantar alguns problemas em alguns compiladores, especialmente quanto estão envolvidos operandos de tipos diferentes ou operandos negativos. No caso dos operandos serem de tipo diferente devemos forçar a conversão entre tipos. Relativamente aos operandos negativos, estes devem ser evitados.