Curso de Algoritmos
Lição 3 - Expressões Aritméticas
Grande parte do processamento em qualquer programa é numérica.
As linguagens de programação trabalham com a aritmética
mais ou menos do mesmo jeito que nós, na escola (veja bem, mais
ou menos...) Os componentes básicos das expressões aritméticas
são: constantes, variáveis e operadores. Os dois primeiros
já conhecemos; operadores são os "sinais" que usamos nas
contas:
| Operador | Operação |
Exemplo |
Resultado |
|
| + | Adição |
3 + 2
|
5
|
|
| - | Subtração |
10 - 5
|
5
|
|
| * |
Multiplicação |
3 * 7
|
21
|
|
| / | Divisão |
25 / 2 |
12.5 |
|
| ^ | Potenciação |
5 ^ 2 |
25 |
|
| \ | Divisão Inteira |
25 \ 2
|
12 |
Note que não se usa o "X" para indicar a multiplicação, nem a barra horizontal de fração para indicar a divisão...
Você deve ter notado que há dois operadores para divisão. O segundo ( \ ) é o da divisão inteira, ou seja, a que não tem parte decimal, mesmo que o dividendo não seja múltiplo do divisor. Várias liguagens de programação têm estes dois operadores. Por outro lado em algumas linguagens de programação, o operador de potenciação é ** (dois asteriscos juntos). Nos nossos exemplos e exercícios sempre usaremos os operadores descritos acima.
Da mesma maneira que estudamos na escola, algumas operações
têm prioridade sobre as outras. A potenciação tem a maior prioridade
entre todos estes operadores. Multiplicação e divisão
devem ser operadas antes da adição e subtração.
Assim, na expressão
3 + 2 * 5
primeiro operamos o 2*5, e somamos o resultado com
3
para obter 13.
Para mudar a ordem das operações, usamos parênteses:
como na aritmética da escola, o que estiver entre parênteses
será operado primeiro. Por exemplo:
( 3 + 2 ) * 5
primeiro operamos o 3 + 2,
porque está entre parênteses, e depois o resultado desta operação será
multiplicado com 5 para obter 25.
Quando na expressão só houver operações com a mesma prioridade, a avaliação é feita normalmente da esquerda para a direita.
Nas linguagens de programação e nos algoritmos não se usam colchetes e chaves para sucessivos agrupamentos de operações, e sim mais parênteses. Vamos ver um exemplo mais complexo. Qual o valor de:
| ( 3 + 5 ) * ( 4 * ( 10 -7 ) ) / 2 | Opera-se o que estiver nos parênteses mais internos | |
| ( 3 + 5 ) * ( 4 * 3 ) / 2 | Operam-se os dois parênteses que restaram | |
| 8 * 12 / 2 | So há * e / - , então opera-se da esquerda para a direita | |
| 96 / 2 | ||
| 48 | Resultado final |
Um outro exemplo:
| 6 * ( 9 + 3 * 2 ) / ( 2 * 4 - 11 ) | Operam-se as multiplicações nos parênteses | |
| 6 * ( 9 + 6 ) / ( 8 - 11 ) | Operam-se os parênteses | |
| 6 * 15 / -3 | So há * e / - opera-se da esquerda para a direita | |
| 90 / -3 | Observe o sinal negativo antes do 3... | |
| -30 | Resultado final |
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 em uma 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 | Comentários | ||
| 1) | Declare A : Numerico | 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) | Declare A, B : Numerico | ||
| 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) | Declare A : Numerico | ||
| 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) | Declare 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 acima, você deve ter notado que podemos usar uma expressão no comando Escreva. Ela é calculada, e o seu resultado é exibido.
Com os conhecimentos adquiridos até agora, podemos começar a construir nossos próprios algoritmos.