Lógica de Programação - Operadores Relacionais

No artigo anterior em Lógica de Programação - Operadores Aritméticos, aprendemos sobre os operadores aritméticos binários e unários, além da ordem de precedência em operações seguida por eles.


Neste artigo aprenderemos sobre os operadores relacionais, sua função e como utilizá-los na programação, sendo todas as representações deste artigo em pseudocódigo. Porque imaginemos o seguinte: podemos negar algo em português através da palavra não, e em inglês através da palavra not, no; em espanhol através do no, em alemão através do nein... e ambas significam a mesma coisa. Da mesma forma podemos passar uma instrução para um computador representada em diferentes linguagens de programação, por isso antes de nos preocuparmos com as diferentes maneiras de se passar uma instrução para um computador em linguagem de programação, vamos nos preocupar com a instrução em si e aprender antes o seu significado através do pseudocódigo que facilita o nosso  entendimento.

Os Operadores Relacionais

Os operadores relacionais são utilizados para relacionar dois valores de mesmo tipo primitivo e retornar um valor lógico de verdadeiro ou falso. São eles:

OperadorFunçãoExemplos
=igual a1 = 2, a = b
>maior que7.0 > 6.0, x > y
<menor que3.2 > 3.555, m > n
>=maior ou igual a255 >= 9.0, s >= t
<=menor ou igual a1.0 <= 1.0, e <= e
<>Diferente de3 <> 3, g <> g

Por relacionar apenas dois valores por vez, não podemos expressar em pseudocódigo 1 < x < 10 como na matemática, mas sim (x > 1) e (x < 10). Porém algumas linguagens de programação, como o Python por exemplo, aceitam essa sintaxe de (a < x < b).

Note que os operadores de igualdade (=) e diferença (<>) podem ser usados em dados do tipo:
  • Numérico (real e inteiro);
  • Lógico;
  • Literal (ou caractere).

E quanto ao uso de operadores de desigualdade, varia um pouquinho de linguagem de programação para linguagem de programação. Por exemplo: em C a operação true > false ou true < false não gera erro, enquanto em Java geraria um erro no processo de compilação. E a operação 'a' > 'b' envolvendo caracteres simples, é válida em ambas as linguagens. Isso acontece porque cada caractere possui um código numérico que o identifica.

O padrão que representa os caracteres de todas as línguas existentes se chama Unicode, que oferece um número único número para cada caractere.

Observação: é possível comparar um dado numérico inteiro com um real sem problema algum. O resultado da comparação ainda será um resultado lógico de verdade ou falsidade.

Utilização dos Operadores Relacionais

No artigo sobre O que é um Algoritmo, ajudamos João a atravessar a rua com um algoritmo na forma descritiva. Existia uma condicional "se o semáforo estiver aberto para os carros, esperar". Podemos utilizar um operador relacional nessa situação:

se (semaforo = VERDADEIRO) entao
  //Instruções para esperar o semáforo fechar
senao
  //Instruções para atravessar
fimse

Isto acima é uma estrutura condicional. Toda estrutura condicional e até mesmo iterativa, devem receber um valor lógico para haver um desvio ou não na execução do programa. Um outro exemplo do uso de operadores relacionais:

algoritmo "Exemplo1"
var
  n1, n2, n3, media: real
inicio

  //Entrada das notas
  escreva("Primeira nota: ")
  leia(n1)

  escreva("Segunda nota: ")
  leia(n2)

  escreva("Terceira nota: ")
  leia(n3)

  //Cálculo da média
  media := (n1 + n2 + n3)/3

  //Saída utilizando operadores relacionais
  se (media >= 6) entao
    escreva("Aprovado!")
  senao
    se (media < 6) e (media > 3) entao
      escreva("Exame.")
    senao
      escreva("Reprovado!")
    fimse
  fimse
fimalgoritmo
Perceba que na segunda condição foi utilizado o conector lógico "e" para interligar o resultado das duas operações envolvendo operadores relacionais. O "e" não é um operador relacional e sim lógico.

Também é possível utilizá-los para armazenar um valor em uma variável do tipo lógica:

algoritmo "Exemplo2"
var
   a: logico
inicio
   a := 1 > 2
   escreva("1 > 2 = ", a)
fimalgoritmo 
A saída desse algoritmo será:
1 > 2 = FALSO

O que você aprendeu

Neste artigo você aprendeu o que significa um operador relacional e que ele é utilizado em situações em que se precisa relacionar dois tipos de dados primitivos e que o resultado da comparação é um dado lógico. Você aprendeu:
  • O que são operadores relacionais.
  • Utilização dos operadores relacionais.
  • Ordem de precedência seguida por eles.

No próximo artigo falaremos sobre operadores lógicos: Lógica de Programação - Operadores Lógicos

Referência Bibliográfica
MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lógica para Desenvolvimento de Programação de Computadores. 17. ed. São Paulo: Érica, 2005. 219 p.

FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: a construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Prentice Hall, 2005. 208 p.


Para citar esse artigo:

Comentários