5. Expressões aritméticas
5.1. Conceito de Expressão
O conceito de expressão em termos computacionais está intimamente ligado ao conceito de
expressão (ou fórmula) matemática, onde um conjunto de variáveis e constantes numéricas se
relacionam por meio de operadores aritméticos compondo uma fórmula que, uma vez
avaliada, resulta num valor.
Por exemplo, a fórmula de cálculo da área do triângulo da figura anterior é dada por:
ÁREA = 0.5 × B × H
Esta fórmula utiliza três variáveis: B e H, que contêm as dimensões do triângulo, e ÁREA,
onde é guardado o valor calculado (resultado da avaliação da expressão). Há, também, uma
constante (0.5) e um operador de multiplicação (×), que aparece duas vezes na expressão.
O conceito de expressão aplicado à computação assume um conceito mais amplo: uma
expressão é uma combinação de variáveis, constantes e operadores, e que, uma vez avaliada,
resulta num valor.
Uma vez que já temos os dados e as variáveis podemos então passar à criação de
expressões. No entanto, para que uma expressão esteja completa são necessários operadores
que possam ser aplicados a estes dados. Os operadores são basicamente os mesmos
encontrados noutras linguagens de programação.
Assim, existem basicamente três tipos de expressões:
•
Expressões Aritméticas;
•
Expressões Lógicas;
•
Expressões Literais.
Cada um destes três tipos de expressões tem os seus próprios operadores.
___________________________________________
Algoritmos
Carla Alves (Equiparada a Assistente do 2º Triénio)
- 26 -
5.2. Operadores
Operadores são elementos funcionais que actuam sobre operandos e que produzem um
determinado resultado. Por exemplo, a expressão 3 + 2 relaciona dois operandos (os números
3 e 2) por meio do operador (+) que representa a operação de adição.
De acordo com o número de operandos sobre os quais os operadores actuam, os operadores
podem ser classificados em:
- Binários, quando actuam sobre dois operandos.
Exemplo:
Operadores das operações aritméticas básicas (adição, subtracção, multiplicação e
divisão);
- Unários, quando actuam sobre um único operando.
Exemplo:
O sinal de (-) à frente de um número (sinal posicional matemático), cuja função é
inverter o seu sinal.
Outra classificação dos operadores é feita considerando-se o tipo de dado dos seus
operandos e o valor resultante da sua avaliação. Segundo esta classificação, os operadores
dividem-se em aritméticos, lógicos e literais. Esta divisão está directamente relacionada com
o tipo de expressão onde aparecem os operadores.
Casos especiais são os dos operadores relacionais, que permitem comparar pares de
operandos de tipos de dados iguais, resultando sempre num valor lógico.
5.3. Expressões Aritméticas
Grande parte do processamento em qualquer programa é numérica. As linguagens de
programação trabalham com a aritmética um pouco do mesmo modo que nós, na escola. Os
componentes básicos das expressões aritméticas são: constantes, variáveis e operadores.
As expressões são classificadas de acordo com o tipo de valor resultante da sua avaliação.
Expressões aritméticas são aquelas cujo resultado da avaliação é do tipo numérico, quer
seja inteiro ou real, dependendo dos operandos e operadores. Nas expressões deste tipo só é
permitido o uso de operadores aritméticos e variáveis numéricas.
___________________________________________
Algoritmos
Carla Alves (Equiparada a Assistente do 2º Triénio)
- 27 -
Os operadores aritméticos relacionados com as operações aritméticas básicas estão
sumariados na tabela seguinte.
Operador
Tipo
Operação
Prioridade
+
*
/
\
**
Binário
Binário
Binário
Binário
Binário
Binário
Adição
Subtracção
Multiplicação
Divisão
Divisão inteira
Exponenciação
4
4
3
3
3
2
+
mod
Unário
Unário
Binário
Manutenção de sinal
Inversão de sinal
Módulo (Resto da divisão inteira)
1
1
2
A prioridade entre operadores define a ordem pela qual devem ser avaliados dentro de uma
mesma expressão. Quanto menor é o número maior é a prioridade da operação.
O caractere (*) é adoptado na maioria das linguagens de programação para representar a
operação de multiplicação, ao invés do caractere (×), devido à possibilidade da ocorrência do
mesmo no nome das variáveis. Pela mesma razão, o símbolo (**) é adoptado para representar
a operação de exponenciação. Algumas linguagens de programação adoptam o símbolo (^)
(circunflexo) para esta finalidade, mas é pouco frequente.
As variáveis usadas em expressões aritméticas só podem ser do tipo inteiro ou real. Se
todas as variáveis que aparecem numa expressão são do tipo inteiro, então o valor resultante
da expressão é também do tipo inteiro. Se pelo menos uma das variáveis da expressão
aritmética for do tipo real, então o valor resultante da avaliação da expressão é
necessariamente do tipo real. Isto pode parecer estranho a princípio, mas este procedimento
reflecte a forma como as operações são executadas pelos processadores. Por exemplo, o
resultado da operação 1/5 é 0, porque os dois operadores são inteiros. Caso a expressão
tivesse sido escrita como 1.0/5 então o resultado correcto seria 0.2. Seguem-se alguns
exemplos de expressões aritméticas.
Nos exemplos seguintes, assumiremos que:
- A, B e C são variáveis do tipo inteiro;
- X, Y e Z são variáveis do tipo real.
Assim:
1) A + B * C
-
___________________________________________
Algoritmos
Carla Alves (Equiparada a Assistente do 2º Triénio)
expressão de resultado inteiro
- 28 -
2) A + B + Y
-
expressão de resultado real
3) A \ B
-
expressão de resultado inteiro
4) X / Y
-
expressão de resultado real
Apesar de no terceiro exemplo ser apresentada uma expressão onde se dividem dois
números inteiros e se obtém como resultado um valor inteiro o resultado da divisão entre dois
números inteiros não é necessariamente inteiro. Na verdade, a operação representada no
terceiro item é a divisão inteira, onde o resto da divisão é desprezado.
Observe-se que as expressões somente podem ser escritas de forma linear, isto é, o sinal de
divisão é uma barra inclinada. Portanto as fracções somente podem ser escritas conforme o
exemplo acima (a/b). Outro ponto importante é a ordem de avaliação das expressões, as
prioridades mostradas na Tabela dos operadores não é suficiente para resolver todas as
situações e precisamos de apresentar algumas regras adicionais:
1.
Primeiro deve-se observar a prioridade dos operadores conforme a Tabela dos
operadores, ou seja, os operadores com maior prioridade (números menores) são avaliados
primeiro. Caso haja empate na ordem de prioridade deve-se resolver a expressão da esquerda
para a direita.
2.
Os parênteses servem para mudar a ordem de prioridade de execução das operações,
dando prioridade às que se encontram entre parênteses. Quando houver parênteses aninhados
(parênteses dentro de parênteses) as expressões dentro dos mais internos são avaliadas
primeiro.
Vamos considerar alguns exemplos para mostrar como estas regras são aplicadas.
Considere as seguintes variáveis:
•
A = 2.0
•
B = 4.0
•
C = 1.0
Vamos então analisar expressões com estas variáveis e os seus resultados.
1.
A*B-C
2.
A*(B-C)
3.
B+A/C+5
4.
(B+A)/(C+5)
___________________________________________
Algoritmos
Carla Alves (Equiparada a Assistente do 2º Triénio)
- 29 -
A primeira expressão tem como resultado o valor 7.0, como era de se esperar. Na segunda
expressão a ordem de avaliação é alterada pelo parênteses e primeiro é feita a subtracção e o
resultado passa a ser 6.0. A primeira operação na terceira expressão é a divisão que tem maior
prioridade. Neste caso o resultado final é 11.0. Na última expressão as somas são realizadas
primeiro e por último a divisão, ficando o resultado igual a 1.0.
Até agora só vimos expressões com constantes. Na maioria das vezes, porém, haverá
expressões que combinarão variáveis e constantes. Quando houver uma variável numa
expressão, o cálculo deve ser feito usando-se o valor da variável naquele momento. Como
exemplo, veja os algoritmos a seguir:
Comandos
1) Var A : Numérico
Comentários
Declaração da variável
A ← 3
Atribuição de valor
Escreva A * 5
Será exibido o valor 15, pois A = 3, logo
3*5 = 15
2) Var A, B : Numérico
A ← 10
B ← A * 3
O valor de B é 30 (10*3)
Escreva B - A + 1
Será exibido o valor 21 (30 - 10 + 1)
B ← 40
Novo valor para B
Escreva B - A + 1
Agora será exibido o valor 31
(40 - 10 + 1), pois o valor de B mudou
3) Var A : Numérico
A ← 3 * 2
O valor de A é 6
A ← A + 1
Agora o valor de A passa a ser 7 (6, o
valor anterior, mais 1)
Escreva A * A
Será exibido o valor 49 (7 * 7)
4) Var X : Numérico
Escreva "Digite um
número:"
Leia X
Obtenha um número qualquer do usuário
Escreva X * 2
Será exibido o dobro do número digitado
(qualquer que ele seja)
Pelos exemplos anteriores, nota-se que podemos usar uma expressão no comando Escreva.
Ela é calculada, e o seu resultado é exibido
___________________________________________
Algoritmos
Carla Alves (Equiparada a Assistente do 2º Triénio)
- 30 -
Download

5. Expressões aritméticas