Operadores aritméticos, relacionais e lógicos

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:

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.

Lista de operadores aritméticos
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.

Lista de funções para operações aritméticas
Operador Função Exemplos
pot(x,y) Potenciação: x^y pot(2,4) (resulta em 16)
sqr(x) Quadrado: x^2 pot(2,4) (resulta em 16)
rad(x,y) Radiciação: \sqrt[y]{x} rad(27,3) (resulta em 3)
sqrt(x) Raiz quadrada: \sqrt{x} 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.

vetores
Prioridade de execução dos operadores aritméticos

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).

Lista de operadores relacionais
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.

Lista de operadores lógicos
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.

Tabela verdade para operador “não”
Operando Não OP
0 (Falso) 1 (Verdadeiro)
1 (Verdadeiro) 0 (Falso)
Tabela verdade para operador “e”
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)
Tabela verdade para operador “ou”
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.

vetores
Prioridade de execução dos operadores lógicos

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.

  1. Parênteses mais internos
  2. Operações aritméticas
  3. Operações relacionais
  4. 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]

Deixe um comentário

%d blogueiros gostam disto: