Objetivos:
|
Descrever os operadores aritméticos, relacionais e lógicos para algoritmos, falando sobre os símbolos e funções utilizados para representá-los e as suas respectivas prioridades de execução dentro de uma expressão matemática.
|
Recursos e materiais:
|
|
Última atualização:
|
04/05/2020
|
Aulas do capítulo:
|
Algoritmos: 1. O que são algoritmos e porque eles são tão importantes 2. Três formas de representação de um algoritmo 3. Tipos de dados, variáveis e identificadores 4. Operadores aritméticos, relacionais e lógicos 5. Exercícios de lógica de programação para iniciantes 6. Atribuição, entrada e saída de dados em algoritmos 7. Aprendendo como fazer um algoritmo com exercícios 8. As estruturas de decisão: se-então-senão e escolha-caso 9. Exercícios sobre estruturas de decisão em algoritmos 10. Estruturas de repetição com teste no início 11. Estruturas de repetição com teste no final e com variável de controle 12. Exercícios sobre estruturas de repetição |
Depois de aprendermos o que são tipos de dados, variáveis e identificadores em um algoritmo, podemos mergulhar mais a fundo nos pseudocódigos. Estudaremos agora os operadores aritméticos, relacionais e lógicos para que sejamos capazes de instruir o computador a processar qualquer dado da forma que desejamos.
Além disso, ao escrevermos expressões matemáticas mais complexas, o computador quebrará essa expressão em operações menores, seguindo uma sequência de cálculos para resolvê-la. Assim, precisamos também conhecer a prioridade de execução dos operadores aritméticos, relacionais e lógicos para garantirmos que as operações sejam realizadas exatamente da forma que esperamos.
Operações aritméticas
As operações aritméticas tradicionais são a soma, subtração, multiplicação e divisão. Os operadores utilizados em cada uma delas e a forma como podemos implementá-las em algoritmos são ilustrados na Tabela 1.
Operador aritmético | Função | Exemplos |
---|---|---|
+ | Soma | 2+3; x+y; z+2 |
– | Subtração | 4-6; x-y; y-4 |
* | Multiplicação | 8*4; x*y; 2*x |
/ | Divisão | 5/2; x/y; z/2 |
É importante entendermos que o tipo de dado afeta diretamente o resultado que obtemos nesses cálculos. Se dividirmos dois valores inteiros (como 5/2), por exemplo, algumas linguagens de programação apresentarão como resultado somente a parte inteira da divisão (2). Se pelo menos um dos termos for do tipo real, o resultado também será real (2.5). Caso o resultado da operação seja atribuído a uma variável, o tipo de dado dela também afetará o valor que será armazenado na memória (2 ou 2.5).
Outras operações aritméticas
Os editores de texto que utilizamos para escrever os programas de computador geralmente não possuem os caracteres gráficos que representam algumas operações artiméticas. Assim, parte desses operadores são substituídos por funções que precisamos conhecer na hora de elaborarmos nossos algoritmos. Essas funções são resumidas na Tabela 2.
Operador | Função | Exemplos |
---|---|---|
pot(x,y) | Potenciação: |
pot(2,4) (resulta em 16) |
sqr(x) | Quadrado: |
pot(2,4) (resulta em 16) |
rad(x,y) | Radiciação: |
rad(27,3) (resulta em 3) |
sqrt(x) | Raiz quadrada: |
sqrt(4) (resulta em 2) |
x mod y | Resto da divisão | 13 mod 2 (resulta em 1) |
x div y | Quociente da divisão | 13 div 2 (resulta em 6) |
Conforme podemos observar, a potenciação nos permite elevar qualquer número x à uma potência y. Já a radiciação tira a raiz de x com índice y. As funções sqr(x) e sqrt(x) são operações de potenciação e radiciação específicas para quando o valor de y é igual a 2. Por fim, a função mod obtém o resto da divisão de x por y, enquanto que a função div resulta na parte inteira do resultado da divisão (quociente).
A prioridade dos operadores artiméticos
Quando as expressões matemáticas possuírem mais de um operador aritmético, a ordem de execução das operações acontecerá sempre de acordo com a Figura 1. A prioridade é de se realizar todas as operações que estão escritas nos parênteses mais internos. Quando diferentes operações estiverem dentro dos mesmos parênteses, calculamos as potências e as raízes, para depois realizarmos as operações div, mod, multiplicações e divisões. Ao final, calculamos as somas e as subtrações. Além disso, operações de mesma prioridade são realizadas da esquerda para a direita, conforme elas aparecerem escritas na equação.

Dois exemplos são apresentados a seguir para que possamos compreender melhor essa ordem de execução dos operadores aritméticos. Caso fique alguma dúvida sobre eles, deixe abaixo seu comentário.
a) | pot(4,2) + 8/4 – 9 mod 4 + sqrt(5 * 2 – 1) pot(4,2) + 8/4 – 9 mod 4 + sqrt(10-1) pot(4,2) + 8/4 – 9 mod 4 + sqrt(9) 16 + 8/4 – 9 mod 4 + 3 16 + 2 – 1 + 3 20 |
b) | sqrt(4 + 11 div 2) + (5 * 9 – 11 mod 2) sqrt(4 + 5) + (45 – 1) sqrt(9) + 44 3 + 44 47 |
Operações relacionais
As operações relacionais, resumidas na Tabela 3, são utilizadas para comparar dois valores e nos informar se a comparação é verdadeira ou falsa. Dessa forma, o resultado será sempre um tipo de dado lógico (1 ou 0, verdadeiro ou falso).
Operador reacional | Função | Exemplos |
---|---|---|
= | Igual a | x=y; x=z |
> | Maior que | 3>2; y>x |
< | Menor que | x<y; 2<x |
>= | Maior ou igual a | 8>=7; x>=z; z>=2 |
<= | Menor ou igual a | 5<=6; x<=z |
<> | Diferente de | 4<>3; x<>z |
Os operadores relacionais possuem prioridade de execução inferior às operações aritméticas. Assim, o computador realizará sempre os cálculos que estão à esquerda e à direita desses operadores relacionais antes de executar a comparação. A única exceção são para situações em que a prioridade é alterada com o uso de parênteses. Vejamos alguns exemplos:
a) | 4 * 3 = 2 * 6 12 = 12 V (Verdadeiro) |
b) | 15 mod 4 < 19 mod 6 3 < 1 F (Falso) |
Operações lógicas
O último tipo de operação que também podemos realizar em nossos algoritmos são as operações lógicas, representadas na Tabela 4. Essas operações trabalham com valores lógicos e são utilizadas para verificar se uma determinada condição é atendida ou não. Por isso, de forma similar aos operadores relacionais, essas operações terão sempre um valor lógico como resultado.
Operador lógico | Função |
---|---|
não | Negação |
e | Conjunção |
ou | Disjunção |
Para utilizarmos esses operadores, precisamos consultar as tabelas verdade de cada um deles (Tabelas 5 a 7), que resumem todas as possíveis combinações de valores verdadeiros e falsos que podemos obter. No caso do operador “não”, o resultado será sempre o oposto da entrada. Já na lógica “e”, todas as entradas da operação precisam ser verdadeiras para que o resultado seja verdadeiro. Por fim, na lógica “ou”, basta que uma das entradas seja verdadeira para que a saída também o seja.
Operando | Não OP |
---|---|
0 (Falso) | 1 (Verdadeiro) |
1 (Verdadeiro) | 0 (Falso) |
Operando 1 | Operando 2 | OP1 e OP2 |
---|---|---|
0 (Falso) | 0 (Falso) | 0 e 0 = 0 (Falso) |
0 (Falso) | 1 (Verdadeiro) | 0 e 1 = 0 (Falso) |
1 (Verdadeiro) | 0 (Falso) | 1 e 0 = 0 (Falso) |
1 (Verdadeiro) | 1 (Verdadeiro) | 1 e 1 = 1 (Verdadeiro) |
Operando 1 | Operando 2 | OP1 ou OP2 |
---|---|---|
0 (Falso) | 0 (Falso) | 0 ou 0 = 0 (Falso) |
0 (Falso) | 1 (Verdadeiro) | 0 ou 1 = 1 (Verdadeiro) |
1 (Verdadeiro) | 0 (Falso) | 1 ou 0 = 1 (Verdadeiro) |
1 (Verdadeiro) | 1 (Verdadeiro) | 1 ou 1 = 1 (Verdadeiro) |
As expressões lógicas devem ser solucionadas respeitando a prioridade de execução ilustrada na Figura 2.
Além disso, as operações lógicas possuem prioridade de execução inferior às operações relacionais. Por isso, em um caso geral, considerando uma expressão matemática contendo todos os tipos de operadores, a solução será realizada na sequência apresentada a seguir.
- Parênteses mais internos
- Operações aritméticas
- Operações relacionais
- Operações lógicas
Alguns exemplos também são mostrados para que possamos compreender melhor essa ordem de operação. Novamente, em caso de qualquer dúvida, não deixe de entrar em contato para que possamos ajudá-lo. A prioridade será sempre o seu aprendizdo.
a) | 4 * 3 = 2 * 6 e 4 < 5 12 = 12 e 4 < 5 V e V V |
b) | 15 mod 4 > 19 mod 6 ou 3 = 4 3 > 1 ou 3 = 4 V ou F V |
||
c) | 4 * (15 mod 4) > 4 e não V 4 * 3 > 4 e não V 12 > 4 e não V V e não V V e F |
d) | F ou não (5 div 2 – rad(19 mod 10) > 7 + pot(2,3)) F ou não(5 div 2 – rad(9) > 7 + 8) F ou não(5 div 2 -3 > 7 + 8) F ou não(2 – 3 > 7 + 8) F ou não (-1 > 15) F ou não(F) F ou V V |
Agora que conhecemos os operadores aritméticos, relacionais e lógicos, seguiremos nossa jornada no mundo da programação ao estudarmos as estruturas de atribuição, entrada e saída de dados. Conforme veremos, são elas que nos permitirão comunicar com os periféricos de entrada e saída, garantindo que nossos programas sejam capazes de interagir com o usuário. Se você gosta de computação e quer aprender tudo sobre a área, acesse agora esse link e continue conectado com a gente! O que não irá faltar serão oportunidades para você ampliar seus conhecimentos!
Referências bibliográficas
A. A. T. Maia, “Fundamentos da Computação – Algoritmos – Programação em Linguagem C”. Universidade Federal de Minas Gerais, 2013.
E. C. Gatto, “Operações aritméticas”. 2016. Online. [Acesso 21 Abril 2019]
E. C. Gatto, “Operações relacionais e lógicas”. 2016. Online. [Acesso 21 Abril 2019]
E. C. Gatto, “Expressões matemáticas”. 2016. Online. [Acesso 21 Abril 2019]